/***************************************************************************** Champion Poker by IGS (documented by Mirko Buffoni) --- Memory Layout (refers to CSK227IT. Others may have different addresses) ROM: 0000-efff RAM: f000-ffff --- I/O Ports Palette: 2000-27ff (low byte) 2800-2fff (high byte) VideoRAM: 7000-77ff ColorRAM: 7800-7fff DSW1-5: 4000-4004 (see input ports section below) InputPorts: 50a0 (unused in this game) 5081-5082 (Coins and Keyboard) 5091 (Keyboard) Expansion: 8000-ffff (R) Used to read from an expansion rom Unknown: 5080 (RW) (possibly related to ticket/hopper) 5090-5091 (RW) (possibly related to eprom counters) 50b0-50b1 (W) (OPL2 compatible chip) 5083 (W) (used only at reset, maybe) 1000-10ff (W) ??? 6000-67ff (W) ??? 6800-6fff (W) Expansion video layer (used with ability) --- Timing: Game is synchronized with VBLANK. It uses IRQ & NMI interrupts. During a frame, there must be 4 IRQs and 4 NMIs in order to play to the correct speed. --- Notes about palette: Charset is 6 bit depth (thus 64 colors of granularity) Colortable is made up of 2 entries of 64 bytes for each palette, splitted, and colorinfo is stored to form the following word: xBBBBBGGGGGRRRRR (Bit 15 is never used) --- FIX: csk227it has video issues, as after Ability game, bg_tilemap is not reset so there must be some bg_enable command which I couldn't find, or rom is from a beta version which has transparency issues. This doesn't happen with csk234it or New Champion Skill. Insert credits with Key-In and press Pay-out to play ability game, and wait for attract-mode to show cubes (not cards), which are transparent and reveal background tilemap. FIX: PK Tetris have an input named AMUSE which I couldn't map. Maybe it is necessary for the Amuse game, because I can't understand how to play it. *****************************************************************************/ #define VERBOSE 0 #include "emu.h" #include "deprecat.h" #include "cpu/z80/z80.h" #include "sound/2413intf.h" #include "sound/okim6295.h" #include "igspoker.lh" class igspoker_state : public driver_device { public: igspoker_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) { } int m_nmi_enable; int m_bg_enable; int m_hopper; UINT8 *m_fg_tile_ram; UINT8 *m_fg_color_ram; UINT8 *m_bg_tile_ram; tilemap_t *m_fg_tilemap; tilemap_t *m_bg_tilemap; UINT8 m_out[3]; size_t m_protection_res; }; static MACHINE_RESET( igs ) { igspoker_state *state = machine.driver_data(); state->m_nmi_enable = 0; state->m_hopper = 0; state->m_bg_enable = 1; } static INTERRUPT_GEN( igs_interrupt ) { igspoker_state *state = device->machine().driver_data(); if (cpu_getiloops(device) % 2) { device_set_input_line(device, 0, HOLD_LINE); } else { if (state->m_nmi_enable) device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } static READ8_HANDLER( igs_irqack_r ) { return 0; } static WRITE8_HANDLER( igs_irqack_w ) { // cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE); } static TILE_GET_INFO( get_bg_tile_info ) { igspoker_state *state = machine.driver_data(); int code = state->m_bg_tile_ram[tile_index]; SET_TILE_INFO(1 + (tile_index & 3), code, 0, 0); } static TILE_GET_INFO( get_fg_tile_info ) { igspoker_state *state = machine.driver_data(); int code = state->m_fg_tile_ram[tile_index] | (state->m_fg_color_ram[tile_index] << 8); int tile = code & 0x1fff; SET_TILE_INFO(0, code, tile != 0x1fff ? ((code >> 12) & 0xe) + 1 : 0, 0); } static WRITE8_HANDLER( bg_tile_w ) { igspoker_state *state = space->machine().driver_data(); state->m_bg_tile_ram[offset] = data; tilemap_mark_tile_dirty(state->m_bg_tilemap,offset); } static WRITE8_HANDLER( fg_tile_w ) { igspoker_state *state = space->machine().driver_data(); state->m_fg_tile_ram[offset] = data; tilemap_mark_tile_dirty(state->m_fg_tilemap,offset); } static WRITE8_HANDLER( fg_color_w ) { igspoker_state *state = space->machine().driver_data(); state->m_fg_color_ram[offset] = data; tilemap_mark_tile_dirty(state->m_fg_tilemap,offset); } static VIDEO_START(igs_video) { igspoker_state *state = machine.driver_data(); state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, tilemap_scan_rows, 8, 8, 64, 32); state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, tilemap_scan_rows, 8, 32, 64, 8); tilemap_set_transparent_pen(state->m_fg_tilemap, 0); } static SCREEN_UPDATE(igs_video) { igspoker_state *state = screen->machine().driver_data(); bitmap_fill(bitmap, cliprect, get_black_pen(screen->machine())); // FIX: CSK227IT must have some way to disable background, or wrong gfx? if (state->m_bg_enable) tilemap_draw(bitmap, cliprect, state->m_bg_tilemap, 0, 0); tilemap_draw(bitmap, cliprect, state->m_fg_tilemap, 0, 0); return 0; } static VIDEO_START(cpokerpk) { igspoker_state *state = machine.driver_data(); state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, tilemap_scan_rows, 8, 8, 64, 32); } static SCREEN_UPDATE(cpokerpk) { igspoker_state *state = screen->machine().driver_data(); tilemap_draw(bitmap, cliprect, state->m_fg_tilemap, 0, 0); return 0; } static void show_out(igspoker_state *state) { #ifdef MAME_DEBUG popmessage("%02x %02x", state->m_out[0], state->m_out[1]); #endif } static WRITE8_HANDLER( igs_nmi_and_coins_w ) { igspoker_state *state = space->machine().driver_data(); coin_counter_w(space->machine(), 0, data & 0x01); // coin_a coin_counter_w(space->machine(), 1, data & 0x04); // coin_c coin_counter_w(space->machine(), 2, data & 0x08); // key in coin_counter_w(space->machine(), 3, data & 0x10); // coin state->m_out mech set_led_status(space->machine(), 6, data & 0x20); // led for coin state->m_out / state->m_hopper active state->m_nmi_enable = data & 0x80; // nmi enable? #ifdef VERBOSE logerror("PC %06X: NMI change %02x\n",cpu_get_pc(&space->device()),state->m_nmi_enable); #endif state->m_out[0] = data; show_out(state); } static WRITE8_HANDLER( igs_lamps_w ) { igspoker_state *state = space->machine().driver_data(); /* - Lbits - 7654 3210 ========= ---- --x- Hold1 lamp. --x- ---- Hold2 lamp. ---x ---- Hold3 lamp. ---- x--- Hold4 lamp. ---- -x-- Hold5 lamp. ---- ---x Start lamp. cpokerx set has different layout: - Lbits - 7654 3210 ========= ---- ---x Start lamp. ---- ---x Hold1 lamp. ---- --x- Hold2 lamp. ---- -x-- Hold3 lamp. ---- x--- Hold4 lamp. ---x ---- Hold5 lamp. xx-- ---- one pulse once bet amount allows start. */ output_set_lamp_value(1, (data >> 1) & 1); /* Lamp 1 - HOLD 1 */ output_set_lamp_value(2, (data >> 5) & 1); /* Lamp 2 - HOLD 2 */ output_set_lamp_value(3, (data >> 4) & 1); /* Lamp 3 - HOLD 3 */ output_set_lamp_value(4, (data >> 3) & 1); /* Lamp 4 - HOLD 4 */ output_set_lamp_value(5, (data >> 2) & 1); /* Lamp 5 - HOLD 5 */ output_set_lamp_value(6, (data & 1)); /* Lamp 6 - START */ state->m_hopper = (~data)& 0x80; state->m_out[1] = data; show_out(state); } static READ8_HANDLER( custom_io_r ) { igspoker_state *state = space->machine().driver_data(); #ifdef VERBOSE logerror("PC %06X: Protection read %02x\n",cpu_get_pc(&space->device()), (int) state->m_protection_res); #endif return state->m_protection_res; } static WRITE8_HANDLER( custom_io_w ) { igspoker_state *state = space->machine().driver_data(); #ifdef VERBOSE logerror("PC %06X: Protection write %02x\n",cpu_get_pc(&space->device()),data); #endif switch (data) { case 0x00: state->m_protection_res = input_port_read(space->machine(), "BUTTONS1"); break; // CSK227 case 0x20: state->m_protection_res = 0x49; break; case 0x21: state->m_protection_res = 0x47; break; case 0x22: state->m_protection_res = 0x53; break; case 0x24: state->m_protection_res = 0x41; break; case 0x25: state->m_protection_res = 0x41; break; case 0x26: state->m_protection_res = 0x7f; break; case 0x27: state->m_protection_res = 0x41; break; case 0x28: state->m_protection_res = 0x41; break; case 0x2a: state->m_protection_res = 0x3e; break; case 0x2b: state->m_protection_res = 0x41; break; // CSK227 and NUMBER10 case 0x2c: state->m_protection_res = 0x49; break; case 0x2d: state->m_protection_res = 0xf9; break; case 0x2e: state->m_protection_res = 0x0a; break; case 0x30: state->m_protection_res = 0x26; break; case 0x31: state->m_protection_res = 0x49; break; case 0x32: state->m_protection_res = 0x49; break; case 0x33: state->m_protection_res = 0x49; break; case 0x34: state->m_protection_res = 0x32; break; // NUMBER10 case 0x60: state->m_protection_res = 0x30; break; case 0x61: state->m_protection_res = 0x31; break; case 0x62: state->m_protection_res = 0x3e; break; case 0x64: state->m_protection_res = 0x3c; break; case 0x65: state->m_protection_res = 0x31; break; case 0x66: state->m_protection_res = 0x39; break; case 0x67: state->m_protection_res = 0x33; break; case 0x68: state->m_protection_res = 0x35; break; case 0x6a: state->m_protection_res = 0x40; break; case 0x6b: state->m_protection_res = 0x43; break; default: state->m_protection_res = data; } } static CUSTOM_INPUT( hopper_r ) { igspoker_state *state = field.machine().driver_data(); if (state->m_hopper) return !(field.machine().primary_screen->frame_number()%10); return field.machine().input().code_pressed(KEYCODE_H); } static READ8_HANDLER( exp_rom_r ) { UINT8 *rom = space->machine().region("maincpu")->base(); return rom[offset+0x10000]; } static ADDRESS_MAP_START( igspoker_prg_map, AS_PROGRAM, 8 ) AM_RANGE(0x0000, 0xefff) AM_ROM AM_RANGE(0xf000, 0xffff) AM_RAM AM_REGION("maincpu", 0xf000) ADDRESS_MAP_END static ADDRESS_MAP_START( igspoker_io_map, AS_IO, 8 ) AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split1_w ) AM_BASE_GENERIC( paletteram ) AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split2_w ) AM_BASE_GENERIC( paletteram2 ) AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */ AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2") /* DSW2 */ AM_RANGE(0x4002, 0x4002) AM_READ_PORT("DSW3") /* DSW3 */ AM_RANGE(0x4003, 0x4003) AM_READ_PORT("DSW4") /* DSW4 */ AM_RANGE(0x4004, 0x4004) AM_READ_PORT("DSW5") /* DSW5 */ AM_RANGE(0x5080, 0x5080) AM_WRITE(igs_nmi_and_coins_w) AM_RANGE(0x5081, 0x5081) AM_READ_PORT("SERVICE") /* Services */ AM_RANGE(0x5082, 0x5082) AM_READ_PORT("COINS") /* Coing & Kbd */ AM_RANGE(0x5090, 0x5090) AM_WRITE(custom_io_w) AM_RANGE(0x5091, 0x5091) AM_READ(custom_io_r) AM_WRITE( igs_lamps_w ) /* Keyboard */ AM_RANGE(0x50a0, 0x50a0) AM_READ_PORT("BUTTONS2") /* Not connected */ AM_RANGE(0x50b0, 0x50b1) AM_DEVWRITE("ymsnd", ym2413_w) AM_RANGE(0x50c0, 0x50c0) AM_READ(igs_irqack_r) AM_WRITE(igs_irqack_w) AM_RANGE(0x6800, 0x6fff) AM_RAM_WRITE( bg_tile_w ) AM_BASE_MEMBER(igspoker_state, m_bg_tile_ram ) AM_RANGE(0x7000, 0x77ff) AM_RAM_WRITE( fg_tile_w ) AM_BASE_MEMBER(igspoker_state, m_fg_tile_ram ) AM_RANGE(0x7800, 0x7fff) AM_RAM_WRITE( fg_color_w ) AM_BASE_MEMBER(igspoker_state, m_fg_color_ram ) AM_RANGE(0x0000, 0xffff) AM_READ( exp_rom_r ) ADDRESS_MAP_END /* MB: 05 Jun 99 Input ports and Dip switches are all verified! */ static INPUT_PORTS_START( cpoker ) PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x06, 0x06, "Min Bet to Start" ) PORT_DIPLOCATION("SWA:7,6") PORT_DIPSETTING( 0x06, "1" ) PORT_DIPSETTING( 0x04, "3" ) PORT_DIPSETTING( 0x02, "5" ) PORT_DIPSETTING( 0x00, "10" ) PORT_DIPNAME( 0x18, 0x10, "Max Bet" ) PORT_DIPLOCATION("SWA:5,4") PORT_DIPSETTING( 0x18, "3" ) PORT_DIPSETTING( 0x10, "5" ) PORT_DIPSETTING( 0x08, "20" ) PORT_DIPSETTING( 0x00, "40" ) PORT_DIPNAME( 0x60, 0x60, "Min Bet to play Fever" ) PORT_DIPLOCATION("SWA:3,2") PORT_DIPSETTING( 0x60, "1" ) PORT_DIPSETTING( 0x40, "5" ) PORT_DIPSETTING( 0x20, "10" ) PORT_DIPSETTING( 0x00, "20" ) PORT_DIPNAME( 0x80, 0x00, "Credit Limit" ) PORT_DIPLOCATION("SWA:1") PORT_DIPSETTING( 0x80, "5000" ) PORT_DIPSETTING( 0x00, "10000" ) PORT_START("DSW2") PORT_DIPNAME( 0x07, 0x07, "Coin In Rate" ) PORT_DIPLOCATION("SWB:8,7,6") PORT_DIPSETTING( 0x07, "1" ) PORT_DIPSETTING( 0x06, "2" ) PORT_DIPSETTING( 0x05, "5" ) PORT_DIPSETTING( 0x04, "10" ) PORT_DIPSETTING( 0x03, "20" ) PORT_DIPSETTING( 0x02, "40" ) PORT_DIPSETTING( 0x01, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("SWB:5,4") PORT_DIPSETTING( 0x18, "10" ) PORT_DIPSETTING( 0x10, "20" ) PORT_DIPSETTING( 0x08, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x60, 0x60, "Key Out Rate" ) PORT_DIPLOCATION("SWB:3,2") PORT_DIPSETTING( 0x60, "1:1" ) PORT_DIPSETTING( 0x40, "10:1" ) PORT_DIPSETTING( 0x20, "100:1" ) PORT_DIPSETTING( 0x00, "100:1" ) PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SWB:1") PORT_DIPSETTING( 0x80, "Manual" ) PORT_DIPSETTING( 0x00, "Auto" ) PORT_START("DSW3") PORT_DIPNAME( 0x01, 0x01, "W-UP Bonus Target" ) PORT_DIPLOCATION("SWC:8") PORT_DIPSETTING( 0x01, "3000" ) PORT_DIPSETTING( 0x00, "5000" ) PORT_DIPNAME( 0x02, 0x02, "W-UP Bonus Rate" ) PORT_DIPLOCATION("SWC:7") PORT_DIPSETTING( 0x02, "300" ) PORT_DIPSETTING( 0x00, "500" ) PORT_DIPNAME( 0x0c, 0x0c, "W-UP Chance" ) PORT_DIPLOCATION("SWC:6,5") PORT_DIPSETTING( 0x0c, "94%" ) PORT_DIPSETTING( 0x08, "96%" ) PORT_DIPSETTING( 0x04, "98%" ) PORT_DIPSETTING( 0x00, "100%" ) PORT_DIPNAME( 0x30, 0x20, "W-UP Type" ) PORT_DIPLOCATION("SWC:4,3") PORT_DIPSETTING( 0x30, DEF_STR( None ) ) PORT_DIPSETTING( 0x20, "High-Low" ) PORT_DIPSETTING( 0x10, "Red-Black" ) /* Bit 4 is equal for ON/OFF */ PORT_DIPNAME( 0x40, 0x00, "Strip Girl" ) PORT_DIPLOCATION("SWC:2") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x80, 0x00, "Anytime Key-in" ) PORT_DIPLOCATION("SWC:1") PORT_DIPSETTING( 0x80, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_START("DSW4") PORT_DIPNAME( 0x0f, 0x07, "Main Game Chance" ) PORT_DIPLOCATION("SWD:8,7,6,5") PORT_DIPSETTING( 0x0f, "69%" ) PORT_DIPSETTING( 0x0e, "72%" ) PORT_DIPSETTING( 0x0d, "75%" ) PORT_DIPSETTING( 0x0c, "78%" ) PORT_DIPSETTING( 0x0b, "81%" ) PORT_DIPSETTING( 0x0a, "83%" ) PORT_DIPSETTING( 0x09, "85%" ) PORT_DIPSETTING( 0x08, "87%" ) PORT_DIPSETTING( 0x07, "89%" ) PORT_DIPSETTING( 0x06, "91%" ) PORT_DIPSETTING( 0x05, "93%" ) PORT_DIPSETTING( 0x04, "95%" ) PORT_DIPSETTING( 0x03, "97%" ) PORT_DIPSETTING( 0x02, "99%" ) PORT_DIPSETTING( 0x01, "101%" ) PORT_DIPSETTING( 0x00, "103%" ) PORT_DIPNAME( 0x10, 0x00, "Five Jokers" ) PORT_DIPLOCATION("SWD:4") PORT_DIPSETTING( 0x10, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x20, 0x00, "Royal Flush" ) PORT_DIPLOCATION("SWD:3") PORT_DIPSETTING( 0x20, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x40, 0x00, "Auto Hold" ) PORT_DIPLOCATION("SWD:2") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x80, 0x00, "Hopper" ) PORT_DIPLOCATION("SWD:1") PORT_DIPSETTING( 0x80, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_START("DSW5") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("SERVICE") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM( hopper_r, (void *)0 ) PORT_NAME("HPSW") // hopper sensor PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_SERVICE_NO_TOGGLE( 0x20, IP_ACTIVE_LOW ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Statistics") PORT_START("COINS") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Down") PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("BUTTONS1") PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("BUTTONS2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / High / Low") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Bet") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Take") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / W-Up") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Red / Black") PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( cpokerx ) PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x06, 0x06, "Min Bet to Start" ) PORT_DIPLOCATION("SWA:7,6") PORT_DIPSETTING( 0x06, "1" ) PORT_DIPSETTING( 0x04, "3" ) PORT_DIPSETTING( 0x02, "5" ) PORT_DIPSETTING( 0x00, "10" ) PORT_DIPNAME( 0x18, 0x10, "Max Bet" ) PORT_DIPLOCATION("SWA:5,4") PORT_DIPSETTING( 0x18, "3" ) PORT_DIPSETTING( 0x10, "5" ) PORT_DIPSETTING( 0x08, "20" ) PORT_DIPSETTING( 0x00, "40" ) PORT_DIPNAME( 0x60, 0x60, "Min Bet to play Fever" ) PORT_DIPLOCATION("SWA:3,2") PORT_DIPSETTING( 0x60, "1" ) PORT_DIPSETTING( 0x40, "5" ) PORT_DIPSETTING( 0x20, "10" ) PORT_DIPSETTING( 0x00, "20" ) PORT_DIPNAME( 0x80, 0x00, "Credit Limit" ) PORT_DIPLOCATION("SWA:1") PORT_DIPSETTING( 0x80, "5000" ) PORT_DIPSETTING( 0x00, "10000" ) PORT_START("DSW2") PORT_DIPNAME( 0x07, 0x07, "Coin In Rate" ) PORT_DIPLOCATION("SWB:8,7,6") PORT_DIPSETTING( 0x07, "1" ) PORT_DIPSETTING( 0x06, "2" ) PORT_DIPSETTING( 0x05, "5" ) PORT_DIPSETTING( 0x04, "10" ) PORT_DIPSETTING( 0x03, "20" ) PORT_DIPSETTING( 0x02, "40" ) PORT_DIPSETTING( 0x01, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("SWB:5,4") PORT_DIPSETTING( 0x18, "10" ) PORT_DIPSETTING( 0x10, "20" ) PORT_DIPSETTING( 0x08, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x60, 0x60, "Key Out Rate" ) PORT_DIPLOCATION("SWB:3,2") PORT_DIPSETTING( 0x60, "1:1" ) PORT_DIPSETTING( 0x40, "10:1" ) PORT_DIPSETTING( 0x20, "100:1" ) PORT_DIPSETTING( 0x00, "100:1" ) PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SWB:1") PORT_DIPSETTING( 0x80, "Manual" ) PORT_DIPSETTING( 0x00, "Auto" ) PORT_START("DSW3") PORT_DIPNAME( 0x01, 0x01, "W-UP Bonus Target" ) PORT_DIPLOCATION("SWC:8") PORT_DIPSETTING( 0x01, "3000" ) PORT_DIPSETTING( 0x00, "5000" ) PORT_DIPNAME( 0x02, 0x02, "W-UP Bonus Rate" ) PORT_DIPLOCATION("SWC:7") PORT_DIPSETTING( 0x02, "300" ) PORT_DIPSETTING( 0x00, "500" ) PORT_DIPNAME( 0x0c, 0x0c, "W-UP Chance" ) PORT_DIPLOCATION("SWC:6,5") PORT_DIPSETTING( 0x0c, "94%" ) PORT_DIPSETTING( 0x08, "96%" ) PORT_DIPSETTING( 0x04, "98%" ) PORT_DIPSETTING( 0x00, "100%" ) PORT_DIPNAME( 0x30, 0x20, "W-UP Type" ) PORT_DIPLOCATION("SWC:4,3") PORT_DIPSETTING( 0x30, DEF_STR( None ) ) PORT_DIPSETTING( 0x20, "High-Low" ) PORT_DIPSETTING( 0x10, "Red-Black" ) /* Bit 4 is equal for ON/OFF */ PORT_DIPNAME( 0x40, 0x00, "Strip Girl" ) PORT_DIPLOCATION("SWC:2") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x80, 0x00, "Anytime Key-in" ) PORT_DIPLOCATION("SWC:1") PORT_DIPSETTING( 0x80, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_START("DSW4") PORT_DIPNAME( 0x0f, 0x07, "Main Game Chance" ) PORT_DIPLOCATION("SWD:8,7,6,5") PORT_DIPSETTING( 0x0f, "69%" ) PORT_DIPSETTING( 0x0e, "72%" ) PORT_DIPSETTING( 0x0d, "75%" ) PORT_DIPSETTING( 0x0c, "78%" ) PORT_DIPSETTING( 0x0b, "81%" ) PORT_DIPSETTING( 0x0a, "83%" ) PORT_DIPSETTING( 0x09, "85%" ) PORT_DIPSETTING( 0x08, "87%" ) PORT_DIPSETTING( 0x07, "89%" ) PORT_DIPSETTING( 0x06, "91%" ) PORT_DIPSETTING( 0x05, "93%" ) PORT_DIPSETTING( 0x04, "95%" ) PORT_DIPSETTING( 0x03, "97%" ) PORT_DIPSETTING( 0x02, "99%" ) PORT_DIPSETTING( 0x01, "101%" ) PORT_DIPSETTING( 0x00, "103%" ) PORT_DIPNAME( 0x10, 0x00, "Five Jokers" ) PORT_DIPLOCATION("SWD:4") PORT_DIPSETTING( 0x10, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x20, 0x00, "Royal Flush" ) PORT_DIPLOCATION("SWD:3") PORT_DIPSETTING( 0x20, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x40, 0x00, "Auto Hold" ) PORT_DIPLOCATION("SWD:2") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x80, 0x00, "Hopper" ) PORT_DIPLOCATION("SWD:1") PORT_DIPSETTING( 0x80, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_START("DSW5") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("SERVICE") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_9) PORT_NAME("Attendent") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM( hopper_r, (void *)0 ) PORT_NAME("HPSW") // hopper sensor PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_0) PORT_NAME("Operator") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("COINS") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("BUTTONS1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Low / Black") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / High / Red") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Bet") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("BUTTONS2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END static INPUT_PORTS_START( csk227 ) PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x06, 0x06, "Min Bet to Start" ) PORT_DIPLOCATION("SWA:6,7") PORT_DIPSETTING( 0x06, "1" ) PORT_DIPSETTING( 0x04, "3" ) PORT_DIPSETTING( 0x02, "5" ) PORT_DIPSETTING( 0x00, "10" ) PORT_DIPNAME( 0x18, 0x18, "Max Bet" ) PORT_DIPLOCATION("SWA:4,5") PORT_DIPSETTING( 0x18, "10" ) PORT_DIPSETTING( 0x10, "20" ) PORT_DIPSETTING( 0x08, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x60, 0x60, "Min Bet to play Fever" ) PORT_DIPLOCATION("SWA:2,3") PORT_DIPSETTING( 0x60, "1" ) PORT_DIPSETTING( 0x40, "5" ) PORT_DIPSETTING( 0x20, "10" ) PORT_DIPSETTING( 0x00, "20" ) PORT_DIPNAME( 0x80, 0x00, "Credit Limit" ) PORT_DIPLOCATION("SWA:1") PORT_DIPSETTING( 0x80, "100000" ) PORT_DIPSETTING( 0x00, "Unlimited" ) PORT_START("DSW2") PORT_DIPNAME( 0x07, 0x07, "Coin In Rate" ) PORT_DIPLOCATION("SWB:8,7,6") PORT_DIPSETTING( 0x07, "1" ) PORT_DIPSETTING( 0x06, "2" ) PORT_DIPSETTING( 0x05, "5" ) PORT_DIPSETTING( 0x04, "10" ) PORT_DIPSETTING( 0x03, "20" ) PORT_DIPSETTING( 0x02, "40" ) PORT_DIPSETTING( 0x01, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("SWB:5,4") PORT_DIPSETTING( 0x18, "10" ) PORT_DIPSETTING( 0x10, "20" ) PORT_DIPSETTING( 0x08, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x60, 0x60, "W-UP Bonus Target" ) PORT_DIPLOCATION("SWB:3,2") PORT_DIPSETTING( 0x60, "1500" ) PORT_DIPSETTING( 0x40, "3000" ) PORT_DIPSETTING( 0x20, "5000" ) PORT_DIPSETTING( 0x00, "7500" ) PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SWB:1") PORT_DIPSETTING( 0x80, "Manual" ) PORT_DIPSETTING( 0x00, "Auto" ) PORT_START("DSW3") PORT_DIPNAME( 0x03, 0x03, "W-UP Bonus Rate" ) PORT_DIPLOCATION("SWC:8,7") PORT_DIPSETTING( 0x03, "200" ) PORT_DIPSETTING( 0x02, "300" ) PORT_DIPSETTING( 0x01, "500" ) PORT_DIPSETTING( 0x00, "800" ) PORT_DIPNAME( 0x0c, 0x0c, "W-UP Chance" ) PORT_DIPLOCATION("SWC:6,5") PORT_DIPSETTING( 0x0c, "94%" ) PORT_DIPSETTING( 0x08, "96%" ) PORT_DIPSETTING( 0x04, "98%" ) PORT_DIPSETTING( 0x00, "100%" ) PORT_DIPNAME( 0x30, 0x20, "W-UP Type" ) PORT_DIPLOCATION("SWC:4,3") PORT_DIPSETTING( 0x30, DEF_STR( None ) ) PORT_DIPSETTING( 0x20, "High-Low" ) PORT_DIPSETTING( 0x10, "Red-Black" ) /* Bit 4 is equal for ON/OFF */ PORT_DIPNAME( 0x40, 0x00, "Strip Girl" ) PORT_DIPLOCATION("SWC:2") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x80, 0x00, "Ability" ) PORT_DIPLOCATION("SWC:1") PORT_DIPSETTING( 0x80, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_START("DSW4") PORT_DIPNAME( 0x0f, 0x07, "Main Game Chance" ) PORT_DIPLOCATION("SWD:8,7,6,5") PORT_DIPSETTING( 0x0f, "69%" ) PORT_DIPSETTING( 0x0e, "72%" ) PORT_DIPSETTING( 0x0d, "75%" ) PORT_DIPSETTING( 0x0c, "78%" ) PORT_DIPSETTING( 0x0b, "81%" ) PORT_DIPSETTING( 0x0a, "83%" ) PORT_DIPSETTING( 0x09, "85%" ) PORT_DIPSETTING( 0x08, "87%" ) PORT_DIPSETTING( 0x07, "89%" ) PORT_DIPSETTING( 0x06, "91%" ) PORT_DIPSETTING( 0x05, "93%" ) PORT_DIPSETTING( 0x04, "95%" ) PORT_DIPSETTING( 0x03, "97%" ) PORT_DIPSETTING( 0x02, "99%" ) PORT_DIPSETTING( 0x01, "101%" ) PORT_DIPSETTING( 0x00, "103%" ) PORT_DIPNAME( 0x10, 0x00, "Five Jokers" ) PORT_DIPLOCATION("SWD:4") PORT_DIPSETTING( 0x10, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x20, 0x00, "Royal Flush" ) PORT_DIPLOCATION("SWD:3") PORT_DIPSETTING( 0x20, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x40, 0x00, "Auto Hold" ) PORT_DIPLOCATION("SWD:2") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x80, 0x80, "Payout Select" ) PORT_DIPLOCATION("SWD:1") PORT_DIPSETTING( 0x80, "Ticket" ) PORT_DIPSETTING( 0x00, "Hopper" ) PORT_START("DSW5") PORT_DIPNAME( 0x07, 0x07, "Key Out Rate" ) PORT_DIPLOCATION("SWE:8,7,6") PORT_DIPSETTING( 0x07, "1:1" ) PORT_DIPSETTING( 0x06, "10:1" ) PORT_DIPSETTING( 0x05, "20:1" ) PORT_DIPSETTING( 0x04, "50:1" ) PORT_DIPSETTING( 0x03, "100:1" ) /* Bits 1-0 are all equivalents */ PORT_DIPNAME( 0x08, 0x00, "Card Select" ) PORT_DIPLOCATION("SWE:5") PORT_DIPSETTING( 0x08, "Poker" ) PORT_DIPSETTING( 0x00, "Tetris" ) PORT_DIPNAME( 0x70, 0x70, "Ticket Rate" ) PORT_DIPLOCATION("SWE:4,3,2") PORT_DIPSETTING( 0x70, "1:1" ) PORT_DIPSETTING( 0x60, "5:1" ) PORT_DIPSETTING( 0x50, "10:1" ) PORT_DIPSETTING( 0x40, "20:1" ) PORT_DIPSETTING( 0x30, "25:1" ) PORT_DIPSETTING( 0x20, "50:1" ) PORT_DIPSETTING( 0x10, "100:1" ) PORT_DIPSETTING( 0x00, "200:1" ) PORT_DIPNAME( 0x80, 0x80, "Win Table" ) PORT_DIPLOCATION("SWE:1") PORT_DIPSETTING( 0x80, "Change" ) PORT_DIPSETTING( 0x00, "Fixed" ) PORT_START("SERVICE") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM( hopper_r, (void *)0 ) PORT_NAME("HPSW") // hopper sensor PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_SERVICE_NO_TOGGLE( 0x20, IP_ACTIVE_LOW ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Statistics") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Bet") PORT_START("COINS") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Down") PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Take") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / W-Up") PORT_START("BUTTONS1") 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_LOW, IPT_START1 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / High / Low") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Red / Black") PORT_START("BUTTONS2") PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( csk234 ) PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x06, 0x06, "Min Bet to Start" ) PORT_DIPLOCATION("SWA:7,6") PORT_DIPSETTING( 0x06, "1" ) PORT_DIPSETTING( 0x04, "3" ) PORT_DIPSETTING( 0x02, "5" ) PORT_DIPSETTING( 0x00, "10" ) PORT_DIPNAME( 0x18, 0x10, "Max Bet" ) PORT_DIPLOCATION("SWA:5,4") PORT_DIPSETTING( 0x18, "3" ) PORT_DIPSETTING( 0x10, "5" ) PORT_DIPSETTING( 0x08, "20" ) PORT_DIPSETTING( 0x00, "40" ) PORT_DIPNAME( 0x60, 0x60, "Min Bet to play Fever" ) PORT_DIPLOCATION("SWA:3,2") PORT_DIPSETTING( 0x60, "1" ) PORT_DIPSETTING( 0x40, "5" ) PORT_DIPSETTING( 0x20, "10" ) PORT_DIPSETTING( 0x00, "20" ) PORT_DIPNAME( 0x80, 0x00, "Credit Limit" ) PORT_DIPLOCATION("SWA:1") PORT_DIPSETTING( 0x80, "5000" ) PORT_DIPSETTING( 0x00, "10000" ) PORT_START("DSW2") PORT_DIPNAME( 0x07, 0x07, "Coin In Rate" ) PORT_DIPLOCATION("SWB:8,7,6") PORT_DIPSETTING( 0x07, "1" ) PORT_DIPSETTING( 0x06, "2" ) PORT_DIPSETTING( 0x05, "5" ) PORT_DIPSETTING( 0x04, "10" ) PORT_DIPSETTING( 0x03, "20" ) PORT_DIPSETTING( 0x02, "40" ) PORT_DIPSETTING( 0x01, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("SWB:5,4") PORT_DIPSETTING( 0x18, "10" ) PORT_DIPSETTING( 0x10, "20" ) PORT_DIPSETTING( 0x08, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x60, 0x60, "Key Out Rate" ) PORT_DIPLOCATION("SWB:3,2") PORT_DIPSETTING( 0x60, "1:1" ) PORT_DIPSETTING( 0x40, "10:1" ) PORT_DIPSETTING( 0x20, "100:1" ) PORT_DIPSETTING( 0x00, "100:1" ) PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SWB:1") PORT_DIPSETTING( 0x80, "Manual" ) PORT_DIPSETTING( 0x00, "Auto" ) PORT_START("DSW3") PORT_DIPNAME( 0x01, 0x01, "W-UP Bonus Target" ) PORT_DIPLOCATION("SWC:8") PORT_DIPSETTING( 0x01, "3000" ) PORT_DIPSETTING( 0x00, "5000" ) PORT_DIPNAME( 0x02, 0x02, "W-UP Bonus Rate" ) PORT_DIPLOCATION("SWC:7") PORT_DIPSETTING( 0x02, "300" ) PORT_DIPSETTING( 0x00, "500" ) PORT_DIPNAME( 0x0c, 0x0c, "W-UP Chance" ) PORT_DIPLOCATION("SWC:6,5") PORT_DIPSETTING( 0x0c, "94%" ) PORT_DIPSETTING( 0x08, "96%" ) PORT_DIPSETTING( 0x04, "98%" ) PORT_DIPSETTING( 0x00, "100%" ) PORT_DIPNAME( 0x30, 0x20, "W-UP Type" ) PORT_DIPLOCATION("SWC:4,3") PORT_DIPSETTING( 0x30, DEF_STR( None ) ) PORT_DIPSETTING( 0x20, "High-Low" ) PORT_DIPSETTING( 0x10, "Red-Black" ) /* Bit 4 is equal for ON/OFF */ PORT_DIPNAME( 0x40, 0x40, "Card Select" ) PORT_DIPLOCATION("SWC:2") PORT_DIPSETTING( 0x40, "Poker" ) PORT_DIPSETTING( 0x00, "Symbols" ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("DSW4") PORT_DIPNAME( 0x0f, 0x07, "Main Game Chance" ) PORT_DIPLOCATION("SWD:8,7,6,5") PORT_DIPSETTING( 0x0f, "69%" ) PORT_DIPSETTING( 0x0e, "72%" ) PORT_DIPSETTING( 0x0d, "75%" ) PORT_DIPSETTING( 0x0c, "78%" ) PORT_DIPSETTING( 0x0b, "81%" ) PORT_DIPSETTING( 0x0a, "83%" ) PORT_DIPSETTING( 0x09, "85%" ) PORT_DIPSETTING( 0x08, "87%" ) PORT_DIPSETTING( 0x07, "89%" ) PORT_DIPSETTING( 0x06, "91%" ) PORT_DIPSETTING( 0x05, "93%" ) PORT_DIPSETTING( 0x04, "95%" ) PORT_DIPSETTING( 0x03, "97%" ) PORT_DIPSETTING( 0x02, "99%" ) PORT_DIPSETTING( 0x01, "101%" ) PORT_DIPSETTING( 0x00, "103%" ) PORT_DIPNAME( 0x10, 0x00, "Auto Hold" ) PORT_DIPLOCATION("SWD:4") PORT_DIPSETTING( 0x10, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x20, 0x00, "Anytime Key-in" ) PORT_DIPLOCATION("SWD:3") PORT_DIPSETTING( 0x20, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_BIT( 0xC0, IP_ACTIVE_LOW, IPT_UNUSED ) /* Joker and Royal Flush are always enabled */ PORT_START("DSW5") PORT_DIPNAME( 0x01, 0x00, "Hopper" ) PORT_DIPLOCATION("SWE:8") PORT_DIPSETTING( 0x01, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x02, 0x00, "Payout Select" ) PORT_DIPLOCATION("SWE:7") PORT_DIPSETTING( 0x02, "Hopper" ) PORT_DIPSETTING( 0x00, "Ticket" ) PORT_DIPNAME( 0x0c, 0x0c, "Ticket Rate" ) PORT_DIPLOCATION("SWE:6,5") PORT_DIPSETTING( 0x0c, "10:1" ) PORT_DIPSETTING( 0x08, "20:1" ) PORT_DIPSETTING( 0x04, "50:1" ) PORT_DIPSETTING( 0x00, "100:1" ) PORT_DIPNAME( 0x10, 0x00, "Ability" ) PORT_DIPLOCATION("SWE:4") PORT_DIPSETTING( 0x10, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("SERVICE") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM( hopper_r, (void *)0 ) PORT_NAME("HPSW") // hopper sensor PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_SERVICE_NO_TOGGLE( 0x20, IP_ACTIVE_LOW ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Statistics") PORT_START("COINS") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Down") PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("BUTTONS1") PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("BUTTONS2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / High / Low") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Bet") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Take") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / W-Up") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Red / Black") PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( igs_ncs ) PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x06, 0x06, "Min Bet to Start" ) PORT_DIPLOCATION("SWA:7,6") PORT_DIPSETTING( 0x06, "1" ) PORT_DIPSETTING( 0x04, "3" ) PORT_DIPSETTING( 0x02, "5" ) PORT_DIPSETTING( 0x00, "10" ) PORT_DIPNAME( 0x18, 0x10, "Max Bet" ) PORT_DIPLOCATION("SWA:5,4") PORT_DIPSETTING( 0x18, "10" ) PORT_DIPSETTING( 0x10, "20" ) PORT_DIPSETTING( 0x08, "40" ) PORT_DIPSETTING( 0x00, "200" ) PORT_DIPNAME( 0x60, 0x60, "Min Bet to play Fever" ) PORT_DIPLOCATION("SWA:3,2") PORT_DIPSETTING( 0x60, "1" ) PORT_DIPSETTING( 0x40, "5" ) PORT_DIPSETTING( 0x20, "10" ) PORT_DIPSETTING( 0x00, "20" ) PORT_DIPNAME( 0x80, 0x00, "Credit Limit" ) PORT_DIPLOCATION("SWA:1") PORT_DIPSETTING( 0x80, "100000" ) PORT_DIPSETTING( 0x00, "Unlimited" ) PORT_START("DSW2") PORT_DIPNAME( 0x07, 0x07, "Coin In Rate" ) PORT_DIPLOCATION("SWB:8,7,6") PORT_DIPSETTING( 0x07, "1" ) PORT_DIPSETTING( 0x06, "2" ) PORT_DIPSETTING( 0x05, "5" ) PORT_DIPSETTING( 0x04, "10" ) PORT_DIPSETTING( 0x03, "20" ) PORT_DIPSETTING( 0x02, "40" ) PORT_DIPSETTING( 0x01, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("SWB:5,4") PORT_DIPSETTING( 0x18, "10" ) PORT_DIPSETTING( 0x10, "20" ) PORT_DIPSETTING( 0x08, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x60, 0x60, "W-UP Limit" ) PORT_DIPLOCATION("SWB:3,2") PORT_DIPSETTING( 0x60, "1500" ) PORT_DIPSETTING( 0x40, "3000" ) PORT_DIPSETTING( 0x20, "5000" ) PORT_DIPSETTING( 0x00, "7500" ) PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SWB:1") PORT_DIPSETTING( 0x80, "Manual" ) PORT_DIPSETTING( 0x00, "Auto" ) PORT_START("DSW3") PORT_DIPNAME( 0x03, 0x03, "W-UP Pool" ) PORT_DIPLOCATION("SWC:8,7") PORT_DIPSETTING( 0x03, "200" ) PORT_DIPSETTING( 0x02, "300" ) PORT_DIPSETTING( 0x01, "500" ) PORT_DIPSETTING( 0x00, "800" ) PORT_DIPNAME( 0x0c, 0x0c, "W-UP Chance" ) PORT_DIPLOCATION("SWC:6,5") PORT_DIPSETTING( 0x0c, "94%" ) PORT_DIPSETTING( 0x08, "96%" ) PORT_DIPSETTING( 0x04, "98%" ) PORT_DIPSETTING( 0x00, "100%" ) PORT_DIPNAME( 0x30, 0x20, "W-UP Type" ) PORT_DIPLOCATION("SWC:4,3") PORT_DIPSETTING( 0x30, DEF_STR( None ) ) PORT_DIPSETTING( 0x20, "High-Low" ) PORT_DIPSETTING( 0x10, "Red-Black" ) /* Bit 4 is equal for ON/OFF */ PORT_DIPNAME( 0x40, 0x40, "Ability Pay" ) PORT_DIPLOCATION("SWC:2") PORT_DIPSETTING( 0x40, "All" ) PORT_DIPSETTING( 0x00, "1/Time" ) PORT_DIPNAME( 0x80, 0x80, "Ability" ) PORT_DIPLOCATION("SWC:1") PORT_DIPSETTING( 0x80, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_START("DSW4") PORT_DIPNAME( 0x0f, 0x07, "Main Game Chance" ) PORT_DIPLOCATION("SWD:8,7,6,5") PORT_DIPSETTING( 0x0f, "69%" ) PORT_DIPSETTING( 0x0e, "72%" ) PORT_DIPSETTING( 0x0d, "75%" ) PORT_DIPSETTING( 0x0c, "78%" ) PORT_DIPSETTING( 0x0b, "81%" ) PORT_DIPSETTING( 0x0a, "83%" ) PORT_DIPSETTING( 0x09, "85%" ) PORT_DIPSETTING( 0x08, "87%" ) PORT_DIPSETTING( 0x07, "89%" ) PORT_DIPSETTING( 0x06, "91%" ) PORT_DIPSETTING( 0x05, "93%" ) PORT_DIPSETTING( 0x04, "95%" ) PORT_DIPSETTING( 0x03, "97%" ) PORT_DIPSETTING( 0x02, "99%" ) PORT_DIPSETTING( 0x01, "101%" ) PORT_DIPSETTING( 0x00, "103%" ) PORT_DIPNAME( 0x10, 0x00, "Five Jokers" ) PORT_DIPLOCATION("SWD:4") PORT_DIPSETTING( 0x10, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x20, 0x00, "Royal Flush" ) PORT_DIPLOCATION("SWD:3") PORT_DIPSETTING( 0x20, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x40, 0x00, "Auto Hold" ) PORT_DIPLOCATION("SWD:2") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x80, 0x00, "Hopper" ) PORT_DIPLOCATION("SWD:1") PORT_DIPSETTING( 0x80, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_START("DSW5") PORT_DIPNAME( 0x07, 0x07, "Key Out Rate" ) PORT_DIPLOCATION("SWE:8,7,6") PORT_DIPSETTING( 0x07, "1:1" ) PORT_DIPSETTING( 0x06, "10:1" ) PORT_DIPSETTING( 0x05, "20:1" ) PORT_DIPSETTING( 0x04, "50:1" ) PORT_DIPSETTING( 0x03, "100:1" ) /* latest 4 is 100 for ON/OFF */ PORT_DIPNAME( 0x08, 0x08, "Card Select" ) PORT_DIPLOCATION("SWE:5") PORT_DIPSETTING( 0x08, "Poker" ) PORT_DIPSETTING( 0x00, "Symbols" ) PORT_DIPNAME( 0x70, 0x70, "Ticket Rate" ) PORT_DIPLOCATION("SWE:4,3,2") PORT_DIPSETTING( 0x70, "1:1" ) PORT_DIPSETTING( 0x60, "5:1" ) PORT_DIPSETTING( 0x50, "10:1" ) PORT_DIPSETTING( 0x40, "20:1" ) PORT_DIPSETTING( 0x30, "25:1" ) PORT_DIPSETTING( 0x20, "50:1" ) PORT_DIPSETTING( 0x10, "100:1" ) PORT_DIPSETTING( 0x00, "200:1" ) PORT_DIPNAME( 0x80, 0x00, "Oddstab Fixed" ) PORT_DIPLOCATION("SWE:1") PORT_DIPSETTING( 0x80, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_START("SERVICE") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM( hopper_r, (void *)0 ) PORT_NAME("HPSW") // hopper sensor PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_SERVICE_NO_TOGGLE( 0x20, IP_ACTIVE_LOW ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Statistics") PORT_START("COINS") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Down") PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("BUTTONS1") PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("BUTTONS2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / High / Low") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Bet") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Take") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / W-Up") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Red / Black") PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static ADDRESS_MAP_START( number10_io_map, AS_IO, 8 ) AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split1_w ) AM_BASE_GENERIC( paletteram ) AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split2_w ) AM_BASE_GENERIC( paletteram2 ) AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */ AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2") /* DSW2 */ AM_RANGE(0x4002, 0x4002) AM_READ_PORT("DSW3") /* DSW3 */ AM_RANGE(0x4003, 0x4003) AM_READ_PORT("DSW4") /* DSW4 */ AM_RANGE(0x4004, 0x4004) AM_READ_PORT("DSW5") /* DSW5 */ AM_RANGE(0x4006, 0x4006) AM_READ_PORT("DSW6") AM_RANGE(0x4007, 0x4007) AM_READ_PORT("DSW7") AM_RANGE(0x50f0, 0x50f0) AM_WRITE(igs_nmi_and_coins_w) AM_RANGE(0x5080, 0x5080) AM_READ_PORT("SERVICE") /* Services */ AM_RANGE(0x5090, 0x5090) AM_WRITE(custom_io_w) AM_RANGE(0x5091, 0x5091) AM_READ(custom_io_r) AM_WRITE( igs_lamps_w ) /* Keyboard */ AM_RANGE(0x50a0, 0x50a0) AM_READ_PORT("BUTTONS2") /* Sound synthesys has been patched out, replaced by ADPCM samples */ AM_RANGE(0x50b0, 0x50b0) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write) AM_RANGE(0x50c0, 0x50c0) AM_READ(igs_irqack_r) AM_WRITE(igs_irqack_w) AM_RANGE(0x7000, 0x77ff) AM_RAM_WRITE( fg_tile_w ) AM_BASE_MEMBER(igspoker_state, m_fg_tile_ram ) AM_RANGE(0x7800, 0x7fff) AM_RAM_WRITE( fg_color_w ) AM_BASE_MEMBER(igspoker_state, m_fg_color_ram ) AM_RANGE(0x0000, 0xffff) AM_READ( exp_rom_r ) ADDRESS_MAP_END static ADDRESS_MAP_START( cpokerpk_io_map, AS_IO, 8 ) AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split1_w ) AM_BASE_GENERIC( paletteram ) AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE( paletteram_xBBBBBGGGGGRRRRR_split2_w ) AM_BASE_GENERIC( paletteram2 ) AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */ AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2") /* DSW2 */ AM_RANGE(0x4002, 0x4002) AM_READ_PORT("DSW3") /* DSW3 */ AM_RANGE(0x4003, 0x4003) AM_READ_PORT("DSW4") /* DSW4 */ AM_RANGE(0x4004, 0x4004) AM_READ_PORT("DSW5") /* DSW5 */ AM_RANGE(0x50f0, 0x50f0) AM_WRITE(igs_nmi_and_coins_w) AM_RANGE(0x5081, 0x5081) AM_READ_PORT("SERVICE") /* Services */ AM_RANGE(0x5082, 0x5082) AM_READ_PORT("COINS") /* Coing & Kbd */ AM_RANGE(0x5090, 0x5090) AM_WRITE(custom_io_w) AM_RANGE(0x5091, 0x5091) AM_READ(custom_io_r) AM_WRITE( igs_lamps_w ) /* Keyboard */ AM_RANGE(0x50a0, 0x50a0) AM_READ_PORT("BUTTONS2") /* Sound synthesys has been patched out, replaced by ADPCM samples */ AM_RANGE(0x50b0, 0x50b0) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write) AM_RANGE(0x50c0, 0x50c0) AM_READ(igs_irqack_r) AM_WRITE(igs_irqack_w) AM_RANGE(0x7000, 0x77ff) AM_RAM_WRITE( fg_tile_w ) AM_BASE_MEMBER(igspoker_state, m_fg_tile_ram ) AM_RANGE(0x7800, 0x7fff) AM_RAM_WRITE( fg_color_w ) AM_BASE_MEMBER(igspoker_state, m_fg_color_ram ) AM_RANGE(0x0000, 0xffff) AM_READ( exp_rom_r ) ADDRESS_MAP_END static INPUT_PORTS_START( number10 ) PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x06, 0x06, "Min Bet to Start" ) PORT_DIPLOCATION("SWA:7,6") PORT_DIPSETTING( 0x06, "1" ) PORT_DIPSETTING( 0x04, "2" ) PORT_DIPSETTING( 0x02, "5" ) PORT_DIPSETTING( 0x00, "10" ) PORT_DIPNAME( 0x18, 0x10, "Max Bet" ) PORT_DIPLOCATION("SWA:5,4") PORT_DIPSETTING( 0x18, "5" ) PORT_DIPSETTING( 0x10, "10" ) PORT_DIPSETTING( 0x08, "20" ) PORT_DIPSETTING( 0x00, "50" ) PORT_DIPNAME( 0x60, 0x60, "Min Bet to play Fever" ) PORT_DIPLOCATION("SWA:3,2") PORT_DIPSETTING( 0x60, "1" ) PORT_DIPSETTING( 0x40, "5" ) PORT_DIPSETTING( 0x20, "10" ) PORT_DIPSETTING( 0x00, "20" ) PORT_DIPNAME( 0x80, 0x00, "Credit Limit" ) PORT_DIPLOCATION("SWA:1") PORT_DIPSETTING( 0x80, "50000" ) PORT_DIPSETTING( 0x00, "50000" ) PORT_START("DSW2") PORT_DIPNAME( 0x07, 0x07, "Coin In Rate" ) PORT_DIPLOCATION("SWB:8,7,6") PORT_DIPSETTING( 0x07, "1" ) PORT_DIPSETTING( 0x06, "2" ) PORT_DIPSETTING( 0x05, "5" ) PORT_DIPSETTING( 0x04, "10" ) PORT_DIPSETTING( 0x03, "20" ) PORT_DIPSETTING( 0x02, "5" ) PORT_DIPSETTING( 0x01, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("SWB:5,4") PORT_DIPSETTING( 0x18, "10" ) PORT_DIPSETTING( 0x10, "20" ) PORT_DIPSETTING( 0x08, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x60, 0x60, "Val Premio" ) PORT_DIPLOCATION("SWB:3,2") PORT_DIPSETTING( 0x60, "1" ) PORT_DIPSETTING( 0x40, "10" ) PORT_DIPSETTING( 0x20, "20" ) PORT_DIPSETTING( 0x00, "50" ) /* Whatever value is selected, code will force ACTIVE_LOW, thus Manual mode */ PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SWB:1") PORT_DIPSETTING( 0x80, "Manual" ) PORT_DIPSETTING( 0x00, "Auto" ) PORT_START("DSW3") PORT_DIPNAME( 0x01, 0x01, "W-UP Limit" ) PORT_DIPLOCATION("SWC:8") PORT_DIPSETTING( 0x01, "3000" ) PORT_DIPSETTING( 0x00, "5000" ) PORT_DIPNAME( 0x02, 0x02, "W-UP Pool" ) PORT_DIPLOCATION("SWC:7") PORT_DIPSETTING( 0x02, "300" ) PORT_DIPSETTING( 0x00, "500" ) PORT_DIPNAME( 0x0c, 0x0c, "W-UP Chance" ) PORT_DIPLOCATION("SWC:6,5") PORT_DIPSETTING( 0x0c, "94%" ) PORT_DIPSETTING( 0x08, "96%" ) PORT_DIPSETTING( 0x04, "98%" ) PORT_DIPSETTING( 0x00, "100%" ) PORT_DIPNAME( 0x30, 0x20, "W-UP Type" ) PORT_DIPLOCATION("SWC:4,3") PORT_DIPSETTING( 0x30, DEF_STR( None ) ) PORT_DIPSETTING( 0x20, "High-Low" ) PORT_DIPSETTING( 0x10, "Red-Black" ) /* Bit 4 is equal for ON/OFF */ PORT_DIPNAME( 0x40, 0x00, "Strip Girl" ) PORT_DIPLOCATION("SWC:2") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) /* Whatever value is selected, code will force ACTIVE_LOW, thus Change */ PORT_DIPNAME( 0x80, 0x00, "Win Table" ) PORT_DIPLOCATION("SWC:1") PORT_DIPSETTING( 0x80, "Change" ) PORT_DIPSETTING( 0x00, "Change" ) PORT_START("DSW4") PORT_DIPNAME( 0x0f, 0x07, "Main Game Chance" ) PORT_DIPLOCATION("SWD:8,7,6,5") PORT_DIPSETTING( 0x0f, "50%" ) PORT_DIPSETTING( 0x0e, "52%" ) PORT_DIPSETTING( 0x0d, "54%" ) PORT_DIPSETTING( 0x0c, "56%" ) PORT_DIPSETTING( 0x0b, "58%" ) PORT_DIPSETTING( 0x0a, "60%" ) PORT_DIPSETTING( 0x09, "62%" ) PORT_DIPSETTING( 0x08, "64%" ) PORT_DIPSETTING( 0x07, "66%" ) PORT_DIPSETTING( 0x06, "68%" ) PORT_DIPSETTING( 0x05, "70%" ) PORT_DIPSETTING( 0x04, "72%" ) PORT_DIPSETTING( 0x03, "74%" ) PORT_DIPSETTING( 0x02, "76%" ) PORT_DIPSETTING( 0x01, "78%" ) PORT_DIPSETTING( 0x00, "80%" ) PORT_DIPNAME( 0x10, 0x00, "Five Jokers" ) PORT_DIPLOCATION("SWD:4") PORT_DIPSETTING( 0x10, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x20, 0x00, "Royal Flush" ) PORT_DIPLOCATION("SWD:3") PORT_DIPSETTING( 0x20, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x40, 0x00, "Auto Hold" ) PORT_DIPLOCATION("SWD:2") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) /* Whatever value is selected, code will force ACTIVE_LOW, thus Bet Max */ PORT_DIPNAME( 0x80, 0x00, "Pts Play" ) PORT_DIPLOCATION("SWD:1") PORT_DIPSETTING( 0x80, "Bet Max" ) PORT_DIPSETTING( 0x00, "Bet Max" ) PORT_START("DSW5") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("DSW6") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) PORT_NAME("HPSW") PORT_START("DSW7") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) PORT_NAME("HPSW") PORT_START("SERVICE") PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Statistics") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_START("BUTTONS1") PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("BUTTONS2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / High / Low") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Bet") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Take") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / W-Up") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Red / Black") PORT_BIT( 0xC0, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( cpokerpk ) PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x06, 0x06, "Min Bet to Start" ) PORT_DIPLOCATION("SWA:7,6") PORT_DIPSETTING( 0x06, "1" ) PORT_DIPSETTING( 0x04, "2" ) PORT_DIPSETTING( 0x02, "5" ) PORT_DIPSETTING( 0x00, "10" ) PORT_DIPNAME( 0x18, 0x10, "Max Bet" ) PORT_DIPLOCATION("SWA:5,4") PORT_DIPSETTING( 0x18, "5" ) PORT_DIPSETTING( 0x10, "10" ) PORT_DIPSETTING( 0x08, "20" ) PORT_DIPSETTING( 0x00, "50" ) PORT_DIPNAME( 0x60, 0x60, "Min Bet to play Fever" ) PORT_DIPLOCATION("SWA:3,2") PORT_DIPSETTING( 0x60, "1" ) PORT_DIPSETTING( 0x40, "5" ) PORT_DIPSETTING( 0x20, "10" ) PORT_DIPSETTING( 0x00, "20" ) PORT_DIPNAME( 0x80, 0x00, "Credit Limit" ) PORT_DIPLOCATION("SWA:1") PORT_DIPSETTING( 0x80, "50000" ) PORT_DIPSETTING( 0x00, "50000" ) PORT_START("DSW2") PORT_DIPNAME( 0x07, 0x07, "Coin In Rate" ) PORT_DIPLOCATION("SWB:8,7,6") PORT_DIPSETTING( 0x07, "1" ) PORT_DIPSETTING( 0x06, "2" ) PORT_DIPSETTING( 0x05, "5" ) PORT_DIPSETTING( 0x04, "10" ) PORT_DIPSETTING( 0x03, "20" ) PORT_DIPSETTING( 0x02, "5" ) PORT_DIPSETTING( 0x01, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("SWB:5,4") PORT_DIPSETTING( 0x18, "10" ) PORT_DIPSETTING( 0x10, "20" ) PORT_DIPSETTING( 0x08, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x60, 0x60, "Val Premio" ) PORT_DIPLOCATION("SWB:3,2") PORT_DIPSETTING( 0x60, "1" ) PORT_DIPSETTING( 0x40, "10" ) PORT_DIPSETTING( 0x20, "20" ) PORT_DIPSETTING( 0x00, "50" ) /* Whatever value is selected, code will force ACTIVE_LOW, thus Manual mode */ PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SWB:1") PORT_DIPSETTING( 0x80, "Manual" ) PORT_DIPSETTING( 0x00, "Auto" ) PORT_START("DSW3") PORT_DIPNAME( 0x01, 0x01, "W-UP Limit" ) PORT_DIPLOCATION("SWC:8") PORT_DIPSETTING( 0x01, "3000" ) PORT_DIPSETTING( 0x00, "5000" ) PORT_DIPNAME( 0x02, 0x02, "W-UP Pool" ) PORT_DIPLOCATION("SWC:7") PORT_DIPSETTING( 0x02, "300" ) PORT_DIPSETTING( 0x00, "500" ) PORT_DIPNAME( 0x0c, 0x0c, "W-UP Chance" ) PORT_DIPLOCATION("SWC:6,5") PORT_DIPSETTING( 0x0c, "94%" ) PORT_DIPSETTING( 0x08, "96%" ) PORT_DIPSETTING( 0x04, "98%" ) PORT_DIPSETTING( 0x00, "100%" ) PORT_DIPNAME( 0x30, 0x20, "W-UP Type" ) PORT_DIPLOCATION("SWC:4,3") PORT_DIPSETTING( 0x30, DEF_STR( None ) ) PORT_DIPSETTING( 0x20, "High-Low" ) PORT_DIPSETTING( 0x10, "Red-Black" ) /* Bit 4 is equal for ON/OFF */ PORT_DIPNAME( 0x40, 0x00, "Strip Girl" ) PORT_DIPLOCATION("SWC:2") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_START("DSW4") PORT_DIPNAME( 0x0f, 0x07, "Main Game Chance" ) PORT_DIPLOCATION("SWD:8,7,6,5") PORT_DIPSETTING( 0x0f, "69%" ) PORT_DIPSETTING( 0x0e, "72%" ) PORT_DIPSETTING( 0x0d, "75%" ) PORT_DIPSETTING( 0x0c, "78%" ) PORT_DIPSETTING( 0x0b, "81%" ) PORT_DIPSETTING( 0x0a, "83%" ) PORT_DIPSETTING( 0x09, "85%" ) PORT_DIPSETTING( 0x08, "87%" ) PORT_DIPSETTING( 0x07, "89%" ) PORT_DIPSETTING( 0x06, "91%" ) PORT_DIPSETTING( 0x05, "93%" ) PORT_DIPSETTING( 0x04, "95%" ) PORT_DIPSETTING( 0x03, "97%" ) PORT_DIPSETTING( 0x02, "99%" ) PORT_DIPSETTING( 0x01, "101%" ) PORT_DIPSETTING( 0x00, "103%" ) PORT_DIPNAME( 0x10, 0x00, "Five Jokers" ) PORT_DIPLOCATION("SWD:4") PORT_DIPSETTING( 0x10, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x20, 0x00, "Royal Flush" ) PORT_DIPLOCATION("SWD:3") PORT_DIPSETTING( 0x20, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x40, 0x00, "Auto Hold" ) PORT_DIPLOCATION("SWD:2") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x80, 0x00, "Anytime Key-in" ) PORT_DIPLOCATION("SWD:1") PORT_DIPSETTING( 0x80, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_START("DSW5") PORT_DIPNAME( 0x01, 0x00, "Hopper" ) PORT_DIPLOCATION("SWE:8") PORT_DIPSETTING( 0x01, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x02, 0x00, "Payout Select" ) PORT_DIPLOCATION("SWE:7") PORT_DIPSETTING( 0x02, "Hopper" ) PORT_DIPSETTING( 0x00, "Ticket" ) PORT_DIPNAME( 0x0c, 0x0c, "Ticket Rate" ) PORT_DIPLOCATION("SWE:6,5") PORT_DIPSETTING( 0x0c, "10:1" ) PORT_DIPSETTING( 0x08, "20:1" ) PORT_DIPSETTING( 0x04, "50:1" ) PORT_DIPSETTING( 0x00, "100:1" ) PORT_START("SERVICE") PORT_BIT( 0x8f, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM( hopper_r, (void *)0 ) PORT_NAME("HPSW") // hopper sensor PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_SERVICE_NO_TOGGLE( 0x20, IP_ACTIVE_LOW ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Statistics") PORT_START("COINS") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Down") PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("BUTTONS1") PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("BUTTONS2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / High / Low") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Bet") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Take") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / W-Up") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Red / Black") PORT_BIT( 0xC0, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( chleague ) PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x06, 0x06, "Min Bet to Start" ) PORT_DIPLOCATION("SWA:7,6") PORT_DIPSETTING( 0x06, "1" ) PORT_DIPSETTING( 0x04, "2" ) PORT_DIPSETTING( 0x02, "5" ) PORT_DIPSETTING( 0x00, "10" ) PORT_DIPNAME( 0x18, 0x10, "Max Bet" ) PORT_DIPLOCATION("SWA:5,4") PORT_DIPSETTING( 0x18, "5" ) PORT_DIPSETTING( 0x10, "10" ) PORT_DIPSETTING( 0x08, "20" ) PORT_DIPSETTING( 0x00, "40" ) PORT_DIPNAME( 0x60, 0x60, "Min Bet to play Fever" ) PORT_DIPLOCATION("SWA:3,2") PORT_DIPSETTING( 0x60, "1" ) PORT_DIPSETTING( 0x40, "5" ) PORT_DIPSETTING( 0x20, "10" ) PORT_DIPSETTING( 0x00, "20" ) PORT_DIPNAME( 0x80, 0x00, "Credit Limit" ) PORT_DIPLOCATION("SWA:1") PORT_DIPSETTING( 0x80, "50000" ) PORT_DIPSETTING( 0x00, "50000" ) PORT_START("DSW2") PORT_DIPNAME( 0x07, 0x07, "Coin In Rate" ) PORT_DIPLOCATION("SWB:8,7,6") PORT_DIPSETTING( 0x07, "1" ) PORT_DIPSETTING( 0x06, "2" ) PORT_DIPSETTING( 0x05, "5" ) PORT_DIPSETTING( 0x04, "10" ) PORT_DIPSETTING( 0x03, "20" ) PORT_DIPSETTING( 0x02, "5" ) PORT_DIPSETTING( 0x01, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("SWB:5,4") PORT_DIPSETTING( 0x18, "10" ) PORT_DIPSETTING( 0x10, "20" ) PORT_DIPSETTING( 0x08, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0x60, 0x60, "Val Premio" ) PORT_DIPLOCATION("SWB:3,2") PORT_DIPSETTING( 0x60, "1" ) PORT_DIPSETTING( 0x40, "1" ) PORT_DIPSETTING( 0x20, "1" ) PORT_DIPSETTING( 0x00, "1" ) /* Whatever value is selected, code will force ACTIVE_LOW, thus Manual mode */ PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SWB:1") PORT_DIPSETTING( 0x80, "Manual" ) PORT_DIPSETTING( 0x00, "Auto" ) PORT_START("DSW3") PORT_DIPNAME( 0x01, 0x01, "W-UP Limit" ) PORT_DIPLOCATION("SWC:8") PORT_DIPSETTING( 0x01, "3000" ) PORT_DIPSETTING( 0x00, "5000" ) PORT_DIPNAME( 0x02, 0x02, "W-UP Pool" ) PORT_DIPLOCATION("SWC:7") PORT_DIPSETTING( 0x02, "300" ) PORT_DIPSETTING( 0x00, "500" ) PORT_DIPNAME( 0x0c, 0x0c, "W-UP Chance" ) PORT_DIPLOCATION("SWC:6,5") PORT_DIPSETTING( 0x0c, "94%" ) PORT_DIPSETTING( 0x08, "96%" ) PORT_DIPSETTING( 0x04, "98%" ) PORT_DIPSETTING( 0x00, "100%" ) PORT_DIPNAME( 0x30, 0x20, "W-UP Type" ) PORT_DIPLOCATION("SWC:4,3") PORT_DIPSETTING( 0x30, DEF_STR( None ) ) PORT_DIPSETTING( 0x20, "High-Low" ) PORT_DIPSETTING( 0x10, "Red-Black" ) /* Bit 4 is equal for ON/OFF */ PORT_DIPNAME( 0x40, 0x00, "Strip Girl" ) PORT_DIPLOCATION("SWC:2") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) /* Whatever value is selected, code will force ACTIVE_LOW, thus Change */ PORT_DIPNAME( 0x80, 0x00, "Win Table" ) PORT_DIPLOCATION("SWC:1") PORT_DIPSETTING( 0x80, "Change" ) PORT_DIPSETTING( 0x00, "Change" ) PORT_START("DSW4") PORT_DIPNAME( 0x0f, 0x07, "Main Game Chance" ) PORT_DIPLOCATION("SWD:8,7,6,5") PORT_DIPSETTING( 0x0f, "50%" ) PORT_DIPSETTING( 0x0e, "52%" ) PORT_DIPSETTING( 0x0d, "54%" ) PORT_DIPSETTING( 0x0c, "56%" ) PORT_DIPSETTING( 0x0b, "58%" ) PORT_DIPSETTING( 0x0a, "60%" ) PORT_DIPSETTING( 0x09, "62%" ) PORT_DIPSETTING( 0x08, "64%" ) PORT_DIPSETTING( 0x07, "66%" ) PORT_DIPSETTING( 0x06, "68%" ) PORT_DIPSETTING( 0x05, "70%" ) PORT_DIPSETTING( 0x04, "72%" ) PORT_DIPSETTING( 0x03, "74%" ) PORT_DIPSETTING( 0x02, "76%" ) PORT_DIPSETTING( 0x01, "78%" ) PORT_DIPSETTING( 0x00, "80%" ) PORT_DIPNAME( 0x10, 0x00, "Five Jokers" ) PORT_DIPLOCATION("SWD:4") PORT_DIPSETTING( 0x10, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x20, 0x00, "Royal Flush" ) PORT_DIPLOCATION("SWD:3") PORT_DIPSETTING( 0x20, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x40, 0x00, "Auto Hold" ) PORT_DIPLOCATION("SWD:2") PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) /* Whatever value is selected, code will force ACTIVE_LOW, thus Bet Max */ PORT_DIPNAME( 0x80, 0x00, "Pts Play" ) PORT_DIPLOCATION("SWD:1") PORT_DIPSETTING( 0x80, "Bet Max" ) PORT_DIPSETTING( 0x00, "Bet Max" ) PORT_START("DSW5") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("SERVICE") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM( hopper_r, (void *)0 ) PORT_NAME("HPSW") // hopper sensor PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_SERVICE_NO_TOGGLE( 0x20, IP_ACTIVE_LOW ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Statistics") PORT_START("COINS") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Down") PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("BUTTONS1") PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("BUTTONS2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / High / Low") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Bet") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Take") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / W-Up") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Red / Black") PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( pktet346 ) PORT_START("DSW1") PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x00, "Demo Game" ) PORT_DIPLOCATION("SWA:7") PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x04, 0x04, "Open Mode" ) PORT_DIPLOCATION("SWA:6") PORT_DIPSETTING( 0x04, "Demo" ) PORT_DIPSETTING( 0x00, "Amuse" ) PORT_DIPNAME( 0x18, 0x18, "Min Bet to Start" ) PORT_DIPLOCATION("SWA:5,4") PORT_DIPSETTING( 0x18, "1" ) PORT_DIPSETTING( 0x10, "5" ) PORT_DIPSETTING( 0x08, "10" ) PORT_DIPSETTING( 0x00, "20" ) PORT_DIPNAME( 0xe0, 0xe0, "Max Bet" ) PORT_DIPLOCATION("SWA:3,2,1") PORT_DIPSETTING( 0xe0, "1" ) PORT_DIPSETTING( 0xc0, "5" ) PORT_DIPSETTING( 0xa0, "10" ) PORT_DIPSETTING( 0x80, "20" ) PORT_DIPSETTING( 0x60, "50" ) PORT_DIPSETTING( 0x40, "75" ) PORT_DIPSETTING( 0x20, "100" ) PORT_DIPSETTING( 0x00, "200" ) PORT_START("DSW2") PORT_DIPNAME( 0x01, 0x01, "Amuse Coin" ) PORT_DIPLOCATION("SWB:8") PORT_DIPSETTING( 0x01, "1:1" ) PORT_DIPSETTING( 0x00, "5:1" ) PORT_DIPNAME( 0x02, 0x02, "Amuse Game" ) PORT_DIPLOCATION("SWB:7") PORT_DIPSETTING( 0x02, "Free" ) PORT_DIPSETTING( 0x00, "1 Credit" ) PORT_DIPNAME( 0x04, 0x04, "Display Card" ) PORT_DIPLOCATION("SWB:6") PORT_DIPSETTING( 0x04, "Poker" ) PORT_DIPSETTING( 0x00, "Numbers" ) PORT_DIPNAME( 0x18, 0x18, "Key In Rate" ) PORT_DIPLOCATION("SWB:5,4") PORT_DIPSETTING( 0x18, "10" ) PORT_DIPSETTING( 0x10, "20" ) PORT_DIPSETTING( 0x08, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_DIPNAME( 0xe0, 0xe0, "Coin Setting" ) PORT_DIPLOCATION("SWB:3,2,1") PORT_DIPSETTING( 0xe0, "1" ) PORT_DIPSETTING( 0xc0, "2" ) PORT_DIPSETTING( 0xa0, "5" ) PORT_DIPSETTING( 0x80, "10" ) PORT_DIPSETTING( 0x60, "20" ) PORT_DIPSETTING( 0x40, "40" ) PORT_DIPSETTING( 0x20, "50" ) PORT_DIPSETTING( 0x00, "100" ) PORT_START("DSW3") PORT_DIPNAME( 0x01, 0x01, "Speed" ) PORT_DIPLOCATION("SWC:8") PORT_DIPSETTING( 0x01, "Slow" ) PORT_DIPSETTING( 0x00, "Quick" ) PORT_DIPNAME( 0x02, 0x02, "Quick Get" ) PORT_DIPLOCATION("SWC:7") PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x04, 0x04, "Bet Base" ) PORT_DIPLOCATION("SWC:6") PORT_DIPSETTING( 0x04, "1" ) PORT_DIPSETTING( 0x00, "10" ) PORT_DIPNAME( 0x18, 0x18, "System Limit" ) PORT_DIPLOCATION("SWC:5,4") PORT_DIPSETTING( 0x18, "30000" ) PORT_DIPSETTING( 0x10, "50000" ) PORT_DIPSETTING( 0x08, "70000" ) PORT_DIPSETTING( 0x00, "Unlimited" ) PORT_DIPNAME( 0xe0, 0xe0, "Key Out Base" ) PORT_DIPLOCATION("SWC:3,2,1") PORT_DIPSETTING( 0xe0, "1" ) PORT_DIPSETTING( 0xc0, "10" ) PORT_DIPSETTING( 0xa0, "20" ) PORT_DIPSETTING( 0x80, "50" ) PORT_DIPSETTING( 0x60, "100" ) PORT_DIPSETTING( 0x40, "100" ) PORT_DIPSETTING( 0x20, "100" ) PORT_DIPSETTING( 0x00, "100" ) PORT_START("DSW4") PORT_DIPNAME( 0x01, 0x01, "Double Game" ) PORT_DIPLOCATION("SWD:8") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x02, "Royal Appear" ) PORT_DIPLOCATION("SWD:7") PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x04, 0x04, "5 Kind Appear" ) PORT_DIPLOCATION("SWD:6") PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x08, 0x08, "Payout" ) PORT_DIPLOCATION("SWD:5") PORT_DIPSETTING( 0x08, "Manual" ) PORT_DIPSETTING( 0x00, "Auto" ) PORT_DIPNAME( 0x10, 0x00, "Hopper" ) PORT_DIPLOCATION("SWD:4") PORT_DIPSETTING( 0x10, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0xe0, 0xe0, "Ticket Set" ) PORT_DIPLOCATION("SWD:3,2,1") PORT_DIPSETTING( 0xe0, "1:1" ) PORT_DIPSETTING( 0xc0, "5:1" ) PORT_DIPSETTING( 0xa0, "10:1" ) PORT_DIPSETTING( 0x80, "20:1" ) PORT_DIPSETTING( 0x60, "25:1" ) PORT_DIPSETTING( 0x40, "50:1" ) PORT_DIPSETTING( 0x20, "100:1" ) PORT_DIPSETTING( 0x00, "200:1" ) PORT_START("DSW5") PORT_DIPNAME( 0x01, 0x01, "Double Gate" ) PORT_DIPLOCATION("SWE:1") PORT_DIPSETTING( 0x01, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_DIPNAME( 0x02, 0x02, "Percentage" ) PORT_DIPLOCATION("SWE:2") PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("SERVICE") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_9) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM( hopper_r, (void *)0 ) PORT_NAME("HPSW") // hopper sensor PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_SERVICE_NO_TOGGLE( 0x20, IP_ACTIVE_LOW ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Statistics") PORT_START("COINS") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Down") PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("BUTTONS1") PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("BUTTONS2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / High / Low") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Bet") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Take") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / W-Up") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Red / Black") PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static const gfx_layout charlayout = { 8, 8, /* 8*8 characters */ RGN_FRAC(1, 3), 6, /* 6 bits per pixel */ { RGN_FRAC(0,3)+8,RGN_FRAC(0,3)+0, RGN_FRAC(1,3)+8,RGN_FRAC(1,3)+0, RGN_FRAC(2,3)+8,RGN_FRAC(2,3)+0 }, { STEP8(0,1) }, { STEP8(0,2*8) }, 8*8*2 /* every char takes 32 consecutive bytes */ }; static const gfx_layout charlayout2 = { 8, 32, /* 8*32 characters */ RGN_FRAC(1, 3), 6, /* 6 bits per pixel */ { RGN_FRAC(0,3)+8,RGN_FRAC(0,3)+0, RGN_FRAC(1,3)+8,RGN_FRAC(1,3)+0, RGN_FRAC(2,3)+8,RGN_FRAC(2,3)+0 }, { STEP8(0,1) }, { STEP32(0,2*8) }, 8*32*2 }; static GFXDECODE_START( igspoker ) GFXDECODE_ENTRY( "gfx1", 0x00000, charlayout, 0, 16 ) GFXDECODE_ENTRY( "gfx2", 0x04000, charlayout2, 0, 16 ) GFXDECODE_ENTRY( "gfx2", 0x08000, charlayout2, 0, 16 ) GFXDECODE_ENTRY( "gfx2", 0x0c000, charlayout2, 0, 16 ) GFXDECODE_ENTRY( "gfx2", 0x00000, charlayout2, 0, 16 ) GFXDECODE_END static const gfx_layout charlayoutcpk = { 8, 8, /* 8*8 characters */ RGN_FRAC(1, 1), 6, { 2,3,4,5,6,7 }, { 0,8,16,24,32,40,48,56 }, { 0*64,1*64,2*64,3*64,4*64,5*64,6*64,7*64 }, 64*8 }; static GFXDECODE_START( cpokerpk ) GFXDECODE_ENTRY( "gfx1", 0x00000, charlayoutcpk, 0, 16 ) /* these not used? */ GFXDECODE_ENTRY( "gfx2", 0x04000, charlayout2, 0, 1 ) GFXDECODE_ENTRY( "gfx2", 0x08000, charlayout2, 0, 1 ) GFXDECODE_ENTRY( "gfx2", 0x0c000, charlayout2, 0, 1 ) GFXDECODE_ENTRY( "gfx2", 0x00000, charlayout2, 0, 1 ) GFXDECODE_END static MACHINE_CONFIG_START( igspoker, igspoker_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, 3579545) MCFG_CPU_PROGRAM_MAP(igspoker_prg_map) MCFG_CPU_IO_MAP(igspoker_io_map) MCFG_CPU_VBLANK_INT_HACK(igs_interrupt,8) MCFG_MACHINE_RESET(igs) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(57) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 32*8-1) MCFG_SCREEN_UPDATE(igs_video) MCFG_GFXDECODE(igspoker) MCFG_PALETTE_LENGTH(2048) MCFG_VIDEO_START(igs_video) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2413, 3579545) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( csk227it, igspoker ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( csk234it, igspoker ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( igs_ncs, igspoker ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( number10, igspoker ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_IO_MAP(number10_io_map) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE(cpokerpk) MCFG_VIDEO_START(cpokerpk) MCFG_OKIM6295_ADD("oki", XTAL_12MHz / 12, OKIM6295_PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( cpokerpk, number10 ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_IO_MAP(cpokerpk_io_map) MCFG_GFXDECODE(cpokerpk) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( pktetris, igspoker ) MACHINE_CONFIG_END /* ROM Regions definition */ ROM_START( cpoker ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD( "v220i1.bin", 0x0000, 0x8000, CRC(b7cae556) SHA1(bb43ee48634879029ed1a7cd4133d7f12413e2ac) ) ROM_LOAD( "v220i2.bin", 0x8000, 0x8000, CRC(8245e42c) SHA1(b7e7b9f643e6dc2f4d5aaf7d50d0a9154ed9a4e7) ) ROM_LOAD( "220i7.bin", 0x18000, 0x8000, CRC(8a2ff310) SHA1(a415a99dbb1448b4b2b94e17a3973e6347e3be18) ) ROM_REGION( 0x60000, "gfx1", 0 ) ROM_LOAD( "220i1.bin", 0x40000, 0x20000, CRC(9c4c0af1) SHA1(7a9808b3093b23bde7ecc7405689b2a28ae34e61) ) ROM_LOAD( "220i2.bin", 0x20000, 0x20000, CRC(331fa4b8) SHA1(ddac57251fa5dfecc0988a2ca01eec016ef47f20) ) ROM_LOAD( "220i3.bin", 0x00000, 0x20000, CRC(bd2f797c) SHA1(5ca5adae44490dd109f630213a09a68c12f9bd1a) ) ROM_REGION( 0x30000, "gfx2", ROMREGION_ERASE00 ) ROM_END ROM_START( csk227it ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD( "v227i.bin", 0x0000, 0x10000, CRC(df1ebf49) SHA1(829c7575d3d3780557405b3a61859901df6dbe4f) ) ROM_LOAD( "7.227", 0x10000, 0x10000, CRC(a10786ad) SHA1(82f5f81808ca70d67a2710cc66fbbf78588b33b5) ) ROM_REGION( 0x60000, "gfx1", 0 ) ROM_LOAD( "6.227", 0x00000, 0x20000, CRC(e9aad93b) SHA1(72116759cd8ddd9828f534e8f8a3f9f96ad2e002) ) ROM_LOAD( "5.227", 0x20000, 0x20000, CRC(e4c4c8da) SHA1(0442b0de68f3b69e613506348e00c3cf9139edcf) ) ROM_LOAD( "4.227", 0x40000, 0x20000, CRC(afb365dd) SHA1(930a4cd516258e703a75afc25ef6b2655b8b696a) ) ROM_REGION( 0x30000, "gfx2", 0 ) ROM_LOAD( "3.bin", 0x00000, 0x10000, CRC(fcb115ac) SHA1(a9f2b9762413840669cd44f8e54b47a7c4350d11) ) ROM_LOAD( "2.bin", 0x10000, 0x10000, CRC(848343a3) SHA1(b12f9bc2feb470d2fa8b085621fa60c0895109d4) ) ROM_LOAD( "1.bin", 0x20000, 0x10000, CRC(921ad5de) SHA1(b06ab2e63b31361dcb0367110f47bf2453ecdca6) ) ROM_END ROM_START( csk234it ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD( "v234it.bin", 0x0000, 0x10000, CRC(344b7059) SHA1(990cb84e35c0c50d3be9fbb76a11395114dc6c9b) ) ROM_LOAD( "7.234", 0x10000, 0x10000, CRC(ae6dd4ad) SHA1(4772d5c150d64d1ef3b68e16214f594eea0b3c1b) ) ROM_REGION( 0x60000, "gfx1", 0 ) ROM_LOAD( "6.234", 0x00000, 0x20000, CRC(23b855a4) SHA1(8217bac61ad09483d8789113cf394d0e525ab28a) ) ROM_LOAD( "5.234", 0x20000, 0x20000, CRC(189039d7) SHA1(146fd1ddb23ceaa4192e0382b0ab82f5cfbdabfe) ) ROM_LOAD( "4.234", 0x40000, 0x20000, CRC(c82b0ffc) SHA1(5ebd7da76d402b7111cbe9012cfa3b8a8ff1a86e) ) ROM_REGION( 0x30000, "gfx2", 0 ) ROM_LOAD( "3.bin", 0x00000, 0x10000, CRC(fcb115ac) SHA1(a9f2b9762413840669cd44f8e54b47a7c4350d11) ) ROM_LOAD( "2.bin", 0x10000, 0x10000, CRC(848343a3) SHA1(b12f9bc2feb470d2fa8b085621fa60c0895109d4) ) ROM_LOAD( "1.bin", 0x20000, 0x10000, CRC(921ad5de) SHA1(b06ab2e63b31361dcb0367110f47bf2453ecdca6) ) ROM_END /* Stelle e Cubi -- most of the roms on this seem to be the wrong size / missing data but its appears to be a hack based on Champion Skill 1x Z84c0006 1x 12mhz OSC 1x U6295 sound chip 1x Actel FPGA (gfx chip) ROMs Note 1x Battery 5x banks of dipswitch -- This doesn't attempt to decode the gfx. */ ROM_START( stellecu ) ROM_REGION( 0x20000, "maincpu", 0 ) /* there is data at 0x18000 which is probably mapped somewhere */ ROM_LOAD( "u35.bin", 0x0000, 0x20000, CRC(914b7c59) SHA1(3275b5016524467199f32d653c757bfe4f9cfc60) ) ROM_REGION( 0x80000, "gfx1", 0 ) /* seems to be missing half the gfx */ ROM_LOAD( "u23.bin", 0x0000, 0x40000, BAD_DUMP CRC(9d95757d) SHA1(f7f44d684f1f3a5b1e9c0a82f4377c6d79eb4214) ) ROM_LOAD( "u25.bin", 0x4000, 0x40000, BAD_DUMP CRC(63094010) SHA1(a781f1c529167dd0ab411c66b72105fc19e32f02) ) ROM_REGION( 0x30000, "gfx2", ROMREGION_ERASEFF ) ROM_REGION( 0x40000, "oki", 0 ) /* Oki Samples */ /* missing sample tables at start of rom */ ROM_LOAD( "u15.bin", 0x0000, 0x40000, BAD_DUMP CRC(72e3e9c1) SHA1(6a8fb93059bee5a4e4b4deb9fee4b5869e53983b) ) ROM_END /* Decode a simple PAL encryption */ static DRIVER_INIT( cpoker ) { int A; UINT8 *rom = machine.region("maincpu")->base(); for (A = 0;A < 0x10000;A++) { rom[A] ^= 0x21; if ((A & 0x0030) == 0x0010) rom[A] ^= 0x20; if ((A & 0x0282) == 0x0282) rom[A] ^= 0x01; if ((A & 0x0940) == 0x0940) rom[A] ^= 0x02; } } static DRIVER_INIT( cpokert ) { UINT8 *rom = machine.region("maincpu")->base(); int i; /* decrypt the program ROM */ for (i = 0;i < 0x10000;i++) { if((i & 0x200) && (i & 0x80)) { rom[i] ^= ((~i & 2) >> 1); } else { rom[i] ^= 0x01; } if((i & 0x30) != 0x10) { rom[i] ^= 0x20; } if((i & 0x900) == 0x900 && ((i & 0xc0) == 0x40 || (i & 0xc0) == 0xc0)) { rom[i] ^= 0x02; } } } static DRIVER_INIT( cska ) { int A; UINT8 *rom = machine.region("maincpu")->base(); for (A = 0;A < 0x10000;A++) { if ((A & 0x0020) == 0x0000) rom[A] ^= 0x01; if ((A & 0x0020) == 0x0020) rom[A] ^= 0x21; if ((A & 0x0282) == 0x0282) rom[A] ^= 0x01; if ((A & 0x0028) == 0x0028) rom[A] ^= 0x20; if ((A & 0x0940) == 0x0940) rom[A] ^= 0x02; } } static DRIVER_INIT( igs_ncs ) { int A; UINT8 *rom = machine.region("maincpu")->base(); for (A = 0;A < 0x10000;A++) { rom[A] ^= 0x21; if ((A & 0x0282) == 0x0282) rom[A] ^= 0x01; if ((A & 0x0140) == 0x0100) rom[A] ^= 0x20; if ((A & 0x0940) == 0x0940) rom[A] ^= 0x02; } } /* 1x ZILOG Z0840006PSC-Z80CPU (main) 1x YM2413 (sound) 1x NEC D8255AC (label: ORIGINAL BY IGS 102986) 1x oscillator 12.000MHz (main) 1x oscillator 3.579545MHz (sound) 1x custom QFP80 label AMT001 1x custom QFP80 label IGS002 1x custom DIP40 label IGS003 (under chip label 8255) ROMs 3x MX27C1000DC (4,5,6) 1x NM27C256Q (7) 1x 27C512 (200) 2x PEEL18CV8P (8,9) 1x PAL16L8ACN (31) 2x PEEL18CV8P (12,14) <-> UNREADABLE, protected! Note 1x 10x2 edge connector (con1) (looks like a coin payout) 1x 36x2 edge connector (con2) 1x pushbutton (sw6) 5x 8 switches dips (sw1-5) 1x trimmer (volume) ---------------------- IGS PCB NO-T0039-8 */ ROM_START( cpokert ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD( "champingv-200g.u23", 0x00000, 0x10000, CRC(696cb684) SHA1(ce9e5bed83d0bd3b115f556cc89e3293ac6b69c3) ) ROM_LOAD( "cpoker7.u22", 0x18000, 0x8000, CRC(dae3ecda) SHA1(c881e143ec600c5a931f26cd097da6353e1da7c3) ) ROM_REGION( 0x60000, "gfx1", 0 ) ROM_LOAD( "cpoker6.u6", 0x00000, 0x20000, CRC(f3e61b24) SHA1(b18998defb6e51daef4ac5a5865674565ffb9029) ) ROM_LOAD( "cpoker5.u5", 0x20000, 0x20000, CRC(a68b305f) SHA1(f872d2bf7ab194145dffe6b254ae0ad66aa6a497) ) ROM_LOAD( "cpoker4.u4", 0x40000, 0x20000, CRC(860be7c9) SHA1(41bc58713076276aeefc44c7ea903549692b0224) ) //copy? ROM_REGION( 0x60000, "gfx2", 0 ) ROM_COPY( "gfx1", 0, 0, 0x60000 ) // convert them to the pld format ROM_REGION( 0x2000, "plds", 0 ) ROM_LOAD( "ag-u31.u31", 0x00000, 0x000b60, CRC(fd36baf2) SHA1(caac8bf47bc958395f97b6191569196efe3b3eaa) ) ROM_LOAD( "ag-u8.u8", 0x00000, 0x0015e2, CRC(c0308c63) SHA1(16819a5c147fef38a235675fa4442da9fa8a6618) ) ROM_LOAD( "ag-u9.u9", 0x00000, 0x0015e2, CRC(2e8039a3) SHA1(e39635ee9485a5ccd28526f1af7ec2e3294b0aec) ) ROM_END /* Champion Poker (IGS) V100. 1x ZILOG Z0840006PSC-Z80CPU (main) 1x oscillator 12.000MHz (main) 1x custom QFP80 label IGS001A 1x custom QFP80 label IGS002 Note 1x 10x2 edge connector (con1) (looks like a coin payout) 1x 36x2 edge connector (con2) 1x switch (sw6) 5x 8 DIP switches (sw1-5) 1x trimmer (volume) ---------------------- IGS PCB NO-0139-3 */ ROM_START( cpokerx ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD( "champion_v-100.bin", 0x00000, 0x10000, CRC(00fc9fc3) SHA1(ee6d4e156f0bf866a4b93272b92bb460dd7e73e1) ) ROM_LOAD( "champion7.u22", 0x18000, 0x8000, CRC(123ff157) SHA1(aa1d1dc589a2d1ca38b667ab88706280347088b4) ) ROM_IGNORE( 0x8000) ROM_REGION( 0x60000, "gfx1", 0 ) ROM_LOAD( "champion3.u6", 0x00000, 0x20000, CRC(f3e61b24) SHA1(b18998defb6e51daef4ac5a5865674565ffb9029) ) ROM_LOAD( "champion2.u5", 0x20000, 0x20000, CRC(a68b305f) SHA1(f872d2bf7ab194145dffe6b254ae0ad66aa6a497) ) ROM_LOAD( "champion1.u4", 0x40000, 0x20000, CRC(860be7c9) SHA1(41bc58713076276aeefc44c7ea903549692b0224) ) //copy? ROM_REGION( 0x60000, "gfx2", 0 ) ROM_COPY( "gfx1", 0, 0, 0x60000 ) ROM_REGION( 0x4000, "plds", 0 ) ROM_LOAD( "16v8b.u31", 0x00000, 0x000892, BAD_DUMP CRC(33dec5f5) SHA1(f5c2e45513fa3657160ff38111a745f76cf679e1) ) // all 0's, seems protected ROM_LOAD( "16v8h.u14", 0x01000, 0x000892, CRC(123d539a) SHA1(cccf0cbae3175b091a998eedf4aa44a55b679400) ) ROM_LOAD( "22v10b.u22", 0x02000, 0x001704, CRC(609a1aaa) SHA1(b123c93929f932e4ee343a7109f8b16717845d8b) ) ROM_END ROM_START( igs_ncs ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD( "v.bin", 0x00000, 0x10000, CRC(8077724b) SHA1(1f6e01d5838e6ec4f91b07637c281a3f59631a51) ) ROM_LOAD( "7.bin", 0x10000, 0x10000, CRC(678e412c) SHA1(dba031d3576d098d314d6589dd1aeda44d17c650) ) ROM_REGION( 0x60000, "gfx1", 0 ) ROM_LOAD( "6.bin", 0x00000, 0x20000, CRC(d8e88148) SHA1(5f5c06d947027ef76026e8834f2090b96652006c) ) ROM_LOAD( "5.bin", 0x20000, 0x20000, CRC(96c8a71c) SHA1(202d04850df9dfbd405c4b5372ef1b39850ac7f7) ) ROM_LOAD( "4.bin", 0x40000, 0x20000, CRC(5480eae8) SHA1(93e35e8ba7d282cb93d51498420341a4e95acf78) ) ROM_REGION( 0x30000, "gfx2", 0 ) ROM_LOAD( "3.bin", 0x00000, 0x10000, CRC(fcb115ac) SHA1(a9f2b9762413840669cd44f8e54b47a7c4350d11) ) ROM_LOAD( "2.bin", 0x10000, 0x10000, CRC(848343a3) SHA1(b12f9bc2feb470d2fa8b085621fa60c0895109d4) ) ROM_LOAD( "1.bin", 0x20000, 0x10000, CRC(921ad5de) SHA1(b06ab2e63b31361dcb0367110f47bf2453ecdca6) ) ROM_END /* New Champion Skill by IGS -- the dump MAY be incomplete, there were 3 empty positions on the PCB near the gfx roms Chips of Note IGS 003C (near chip with TEST OK E0069281 label) IGS 002 IGA 001A 'file' KC8255A 9941 (near CPU roms) UM3567 9946 5x 8 switch dips Clocks 3.579545Mhz (near sound) 12Mhz --- what is the CPU, it looks like either Z80 or Z180 based -- CPU rom is lightly encrypted (usual IGS style, some xors) */ static DRIVER_INIT( igs_ncs2 ) { UINT8 *src = (UINT8 *) (machine.region("maincpu")->base()); int i; for(i = 0; i < 0x10000; i++) { /* bit 0 xor layer */ if(i & 0x200) { if(i & 0x80) { if(~i & 0x02) { src[i] ^= 0x01; } } else { src[i] ^= 0x01; } } else { src[i] ^= 0x01; } /* bit 1 xor layer */ if(i & 0x800) { if(i & 0x100) { if(i & 0x40) { src[i] ^= 0x02; } } } /* bit 5 xor layer */ if(i & 0x100) { if(i & 0x40) { src[i] ^= 0x20; } } else { src[i] ^= 0x20; } } } ROM_START( igs_ncs2 ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD( "ncs_v100n.u20", 0x00000, 0x10000, CRC(2bb91de5) SHA1(b0b7b3b9cee1ce4da10cf78ef1c8079f3d9cafbf) ) ROM_LOAD( "ncs_v100n.u21", 0x10000, 0x10000, CRC(678e412c) SHA1(dba031d3576d098d314d6589dd1aeda44d17c650) ) ROM_REGION( 0xc0000, "gfx1", 0 ) ROM_LOAD( "ncs_v100n.u50", 0x00000, 0x40000, CRC(ff2bb3dc) SHA1(364c948504003b4230fbdac74227842c802d4c12) ) ROM_LOAD( "ncs_v100n.u51", 0x40000, 0x40000, CRC(f8530313) SHA1(b21d6de7d5d4b902008ceea7e1227545e0d1701b) ) ROM_LOAD( "ncs_v100n.u52", 0x80000, 0x40000, CRC(2fa5b6df) SHA1(5bfc651297440f73692079f1806b1e40b457b7b8) ) ROM_REGION( 0x30000, "gfx2", ROMREGION_ERASEFF ) // looks like these are needed for pre-game screens, sockets were empty ROM_LOAD( "ncs_v100n.u55", 0x00000, 0x10000, NO_DUMP ) ROM_LOAD( "ncs_v100n.u56", 0x10000, 0x10000, NO_DUMP ) ROM_LOAD( "ncs_v100n.u57", 0x20000, 0x10000, NO_DUMP ) ROM_END static DRIVER_INIT( chleague ) { int A; int length; UINT8 *rom; rom = machine.region("maincpu")->base(); length = machine.region("maincpu")->bytes(); for (A = 0;A < length;A++) { if ((A & 0x09C0) == 0x0880) rom[A] ^= 0x20; if ((A & 0x0B40) == 0x0140) rom[A] ^= 0x20; } /* Renable patched out DSW Display in test mode */ rom[0xA835] = 0xcd; rom[0xA836] = 0x3a; rom[0xA837] = 0x48; rom[0xA863] = 0xcd; rom[0xA864] = 0x40; rom[0xA865] = 0xd3; rom[0xaade] = 0xcd; rom[0xaadf] = 0x17; rom[0xaae0] = 0xa5; /* Fix graphic glitch */ rom[0x48e8] = 0x19; rom[0x48e9] = 0x5e; rom[0x48ea] = 0x23; /* Patch trap */ rom[0x0eed] = 0xc3; } ROM_START( chleague ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD( "12b.bin", 0x00000, 0x10000, CRC(8b4fb718) SHA1(2ce7cf73aab8a644ecac4189c8ffe7dae9a21571) ) ROM_LOAD( "12a.bin", 0x10000, 0x10000, CRC(bd3af488) SHA1(3c5e7a8623d11bd50a1949e870f1044eec7fc463) ) ROM_REGION( 0x60000, "gfx1", 0 ) ROM_LOAD( "23.bin", 0x40000, 0x20000, CRC(4ac8cc41) SHA1(e4bfd63408511e7d21f140d315493af7fdeba373) ) ROM_LOAD( "24.bin", 0x20000, 0x20000, CRC(6cb070f0) SHA1(27c34bb6463f3841e27fb61afe32fb94c9aedbd0) ) ROM_LOAD( "25.bin", 0x00000, 0x20000, CRC(adebfda8) SHA1(32193f8553d70b15d77f6bc3f7c84ffeb5a60cc4) ) ROM_REGION( 0x30000, "gfx2", ROMREGION_ERASE00 ) ROM_END ROM_START( chleagul ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD( "12d.bin", 0x00000, 0x10000, CRC(7e143b05) SHA1(943a471fa16fd6c000f601ec8bdb35d70f12c033) ) ROM_LOAD( "12c.bin", 0x10000, 0x10000, CRC(bd3af488) SHA1(3c5e7a8623d11bd50a1949e870f1044eec7fc463) ) ROM_REGION( 0x60000, "gfx1", 0 ) ROM_LOAD( "23.bin", 0x40000, 0x20000, CRC(4ac8cc41) SHA1(e4bfd63408511e7d21f140d315493af7fdeba373) ) ROM_LOAD( "24.bin", 0x20000, 0x20000, CRC(6cb070f0) SHA1(27c34bb6463f3841e27fb61afe32fb94c9aedbd0) ) ROM_LOAD( "25.bin", 0x00000, 0x20000, CRC(adebfda8) SHA1(32193f8553d70b15d77f6bc3f7c84ffeb5a60cc4) ) ROM_REGION( 0x30000, "gfx2", ROMREGION_ERASE00 ) ROM_END static DRIVER_INIT( number10 ) { int A; int length; UINT8 *tmp; UINT8 *rom; rom = machine.region("maincpu")->base(); length = machine.region("maincpu")->bytes(); for (A = 0;A < length;A++) { if ((A & 0x09C0) == 0x0880) rom[A] ^= 0x20; if ((A & 0x0B40) == 0x0140) rom[A] ^= 0x20; } /* Renable patched out DSW Display in test mode */ rom[0xA835] = 0xcd; rom[0xA836] = 0x3a; rom[0xA837] = 0x48; rom[0xA863] = 0xcd; rom[0xA864] = 0x40; rom[0xA865] = 0xd3; rom[0xaade] = 0xcd; rom[0xaadf] = 0x17; rom[0xaae0] = 0xa5; /* Fix graphic glitch */ rom[0x48e8] = 0x19; rom[0x48e9] = 0x5e; rom[0x48ea] = 0x23; /* Patch trap */ rom[0xeed] = 0xc3; /* Descramble graphic */ rom = machine.region("gfx1")->base(); length = machine.region("gfx1")->bytes(); tmp = auto_alloc_array(machine, UINT8, length); memcpy(tmp,rom,length); for (A = 0;A < length;A++) { int addr = (A & ~0xffff) | BITSWAP16(A,15,14,13,12,11,10,9,8,7,6,5,4,3,0,1,2); rom[A] = tmp[addr]; } auto_free(machine, tmp); } ROM_START( number10 ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD( "10b.bin", 0x00000, 0x10000, CRC(149935d1) SHA1(8bb2f6bbe8fc5388e058cfce5c554ee9a5de2a6a) ) ROM_LOAD( "10a.bin", 0x10000, 0x10000, CRC(73c6335b) SHA1(df2893c9ede5379afdd2ffbc50de90d715240a1f) ) ROM_REGION( 0x60000, "gfx1", 0 ) ROM_LOAD( "11.bin", 0x00000, 0x20000, CRC(7095cc2a) SHA1(a831f4fc219d0660e1bef65bb6ae6b930795bfea) ) ROM_LOAD( "12.bin", 0x20000, 0x20000, CRC(9cc00079) SHA1(60df16cbc005c3d249ff9342106c4354f47d9740) ) ROM_LOAD( "13.bin", 0x40000, 0x20000, CRC(44f86441) SHA1(7fd4af167544bc5113e36647bfe2d2653f77f134) ) ROM_REGION( 0x30000, "gfx2", ROMREGION_ERASE00 ) ROM_REGION( 0x40000, "oki", 0 ) /* Oki Samples */ ROM_LOAD( "9.bin", 0x0000, 0x40000, CRC(dd213b5c) SHA1(82e32aa44eee227d7424553a743df48606bbd48e) ) ROM_END ROM_START( numbr10l ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD( "10d.bin", 0x00000, 0x10000, CRC(e1c2b9cc) SHA1(a0943222531b5d0cdc44bd8e1a183107d2e1799d) ) ROM_LOAD( "10c.bin", 0x10000, 0x10000, CRC(34620db9) SHA1(63bda238f55888d964bad3d70a0dff7d635b7441) ) ROM_REGION( 0x60000, "gfx1", 0 ) ROM_LOAD( "11.bin", 0x00000, 0x20000, CRC(7095cc2a) SHA1(a831f4fc219d0660e1bef65bb6ae6b930795bfea) ) ROM_LOAD( "12.bin", 0x20000, 0x20000, CRC(9cc00079) SHA1(60df16cbc005c3d249ff9342106c4354f47d9740) ) ROM_LOAD( "13.bin", 0x40000, 0x20000, CRC(44f86441) SHA1(7fd4af167544bc5113e36647bfe2d2653f77f134) ) ROM_REGION( 0x30000, "gfx2", ROMREGION_ERASE00 ) ROM_REGION( 0x40000, "oki", 0 ) /* Oki Samples */ ROM_LOAD( "9.bin", 0x0000, 0x40000, CRC(dd213b5c) SHA1(82e32aa44eee227d7424553a743df48606bbd48e) ) ROM_END static DRIVER_INIT( cpokerpk ) { int A; UINT8 *rom = machine.region("maincpu")->base(); for (A=0x0714; A < 0xF000; A+=0x1000) rom[A] ^= 0x20; } ROM_START( cpokerpk ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD( "blue.bin", 0x00000, 0x20000, CRC(3e987389) SHA1(ab154db89406590d04270d7b29e60efab15758ca) ) ROM_REGION( 0x80000, "gfx1", 0 ) ROM_LOAD16_BYTE( "red.bin", 0x00000, 0x40000, CRC(b72fe1e0) SHA1(0507df7e1495aa265b276337c9c151478dd9d376) ) ROM_LOAD16_BYTE( "white.bin", 0x00001, 0x40000, CRC(bdf55fa4) SHA1(487999d22941a0ef2f3874d31527f45d122aadb0) ) ROM_REGION( 0x40000, "gfx2", ROMREGION_ERASE00 ) ROM_REGION( 0x40000, "oki", 0 ) /* Oki Samples */ ROM_LOAD( "yellow.bin", 0x0000, 0x40000, CRC(dd213b5c) SHA1(82e32aa44eee227d7424553a743df48606bbd48e) ) ROM_END ROM_START( cpokerpkg ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD( "cp.u35", 0x00000, 0x20000, CRC(25e129b9) SHA1(01dc9e09603cef233da28e30194e53ef4cd04475) ) ROM_REGION( 0x80000, "gfx1", 0 ) ROM_LOAD16_BYTE( "3.u23", 0x00000, 0x40000, CRC(b72fe1e0) SHA1(0507df7e1495aa265b276337c9c151478dd9d376) ) ROM_LOAD16_BYTE( "2.u25", 0x00001, 0x40000, CRC(bdf55fa4) SHA1(487999d22941a0ef2f3874d31527f45d122aadb0) ) ROM_REGION( 0x40000, "gfx2", ROMREGION_ERASE00 ) ROM_REGION( 0x40000, "oki", 0 ) /* Oki Samples */ ROM_LOAD( "9.bin", 0x0000, 0x40000, CRC(dd213b5c) SHA1(82e32aa44eee227d7424553a743df48606bbd48e) ) ROM_REGION( 0x2dd, "plds",0 ) ROM_LOAD( "palce22v10h.u44.bad.dump", 0x000, 0x2dd, BAD_DUMP CRC(5c4e9024) SHA1(e9d1e4df3d79c21f4ce053a84bb7b7a43d650f91) ) ROM_END ROM_START( citalcup ) ROM_REGION( 0x20000, "maincpu", 0 ) ROM_LOAD( "ic.u35", 0x00000, 0x20000, CRC(f120eb31) SHA1(b87f638d4eebe05323b6952956d44368077f27aa) ) ROM_REGION( 0x80000, "gfx1", 0 ) ROM_LOAD16_BYTE( "u23.bin", 0x00000, 0x40000, CRC(b8d2be66) SHA1(fc8cec6bbf7cd446e3388a7c0171643a8d8f3064) ) ROM_LOAD16_BYTE( "u25.bin", 0x00001, 0x40000, CRC(b53b8830) SHA1(9854ab83300e7d79c9ab4e154941bfeb607ae8ff) ) ROM_REGION( 0x40000, "gfx2", ROMREGION_ERASE00 ) ROM_REGION( 0x40000, "oki", 0 ) /* Oki Samples */ ROM_LOAD( "9.bin", 0x0000, 0x40000, CRC(dd213b5c) SHA1(82e32aa44eee227d7424553a743df48606bbd48e) ) ROM_END static DRIVER_INIT( pktet346 ) { int A; UINT8 *rom = machine.region("maincpu")->base(); for (A = 0;A < 0x10000;A++) { rom[A] ^= 0x21; if ((A & 0x0008) == 0x0008) rom[A] ^= 0x20; if ((A & 0x0098) == 0x0000) rom[A] ^= 0x20; if ((A & 0x0282) == 0x0282) rom[A] ^= 0x01; if ((A & 0x0940) == 0x0940) rom[A] ^= 0x02; } memset(&rom[0xf000],0,0x1000); /* Patch trap */ rom[0xbb0c] = 0xc3; } ROM_START( pktet346 ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "v-346i.bin", 0x00000, 0x10000, CRC(8015ef13) SHA1(62841daff380d40c14ddb9c1b3fccdbb287e0b0d) ) ROM_REGION( 0x60000, "gfx1", 0 ) ROM_LOAD( "346i-1.bin", 0x40000, 0x20000, CRC(1f8ae481) SHA1(259808422ae1c89f08deb982387b342a68afad7f) ) ROM_LOAD( "346i-2.bin", 0x20000, 0x20000, CRC(f198a24f) SHA1(a4bc5936f8729b00dc3c5034ce5689e4d16284bf) ) ROM_LOAD( "346i-3.bin", 0x00000, 0x20000, CRC(cfc4954d) SHA1(c68edbe0a7ce6a95d978756d2c1c8c5935786bcc) ) ROM_REGION( 0x30000, "gfx2", ROMREGION_ERASE00 ) ROM_END GAMEL( 1993?, cpoker, 0, igspoker, cpoker, cpoker, ROT0, "IGS", "Champion Poker (v220I)", 0, layout_igspoker ) GAMEL( 1993?, cpokert, cpoker, igspoker, cpoker, cpokert, ROT0, "IGS (Tuning license)", "Champion Poker (v200G)", 0, layout_igspoker ) GAMEL( 1993, cpokerx, cpoker, igspoker, cpokerx, cpokert, ROT0, "IGS", "Champion Poker (v100)", 0, layout_igspoker ) GAMEL( 2000, chleague, 0, igspoker, chleague, chleague, ROT0, "IGS", "Champion League (Poker)", 0, layout_igspoker ) GAMEL( 2000, chleagul, chleague, igspoker, chleague, chleague, ROT0, "IGS", "Champion League (Lattine)", 0, layout_igspoker ) GAMEL( 198?, csk227it, 0, csk227it, csk227, cska, ROT0, "IGS", "Champion Skill (with Ability)", 0, layout_igspoker ) /* SU 062 */ GAMEL( 198?, csk234it, csk227it, csk234it, csk234, cska, ROT0, "IGS", "Champion Skill (Ability, Poker & Symbols)", 0, layout_igspoker ) /* SU 062 */ GAMEL( 2000, number10, 0, number10, number10, number10, ROT0, "PlayMark SRL", "Number Dieci (Poker)", 0, layout_igspoker ) GAMEL( 2000, numbr10l, number10, number10, number10, number10, ROT0, "PlayMark SRL", "Number Dieci (Lattine)", 0, layout_igspoker ) GAMEL( 198?, igs_ncs, 0, igs_ncs, igs_ncs, igs_ncs, ROT0, "IGS", "New Champion Skill (v100n)", 0, layout_igspoker ) /* SU 062 */ GAMEL( 199?, cpokerpk, 0, cpokerpk, cpokerpk, cpokerpk, ROT0, "bootleg (SGS)", "Champion Italian PK (bootleg, blue board)", 0, layout_igspoker ) GAMEL( 199?, cpokerpkg, cpokerpk, cpokerpk, cpokerpk, cpokerpk, ROT0, "bootleg (SGS)", "Champion Italian PK (bootleg, green board)", 0, layout_igspoker ) GAMEL( 199?, citalcup, cpokerpk, cpokerpk, cpokerpk, cpokerpk, ROT0, "bootleg (SGS)", "Champion Italian Cup (bootleg V220IT)", 0, layout_igspoker ) GAMEL( 2000, igs_ncs2, 0, igs_ncs, igs_ncs, igs_ncs2, ROT0, "IGS", "New Champion Skill (v100n 2000)", GAME_IMPERFECT_GRAPHICS, layout_igspoker ) GAMEL( 1998, stellecu, 0, number10, number10, 0, ROT0, "Sure", "Stelle e Cubi (Italy)", GAME_NOT_WORKING, layout_igspoker ) GAMEL( 1993?, pktet346, 0, pktetris, pktet346, pktet346, ROT0, "IGS", "PK Tetris (v346I)", 0, layout_igspoker )