summaryrefslogtreecommitdiffstatshomepage
path: root/trunk/src/mame/drivers/igspoker.c
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/mame/drivers/igspoker.c')
-rw-r--r--trunk/src/mame/drivers/igspoker.c2453
1 files changed, 2453 insertions, 0 deletions
diff --git a/trunk/src/mame/drivers/igspoker.c b/trunk/src/mame/drivers/igspoker.c
new file mode 100644
index 00000000000..36abb084ea7
--- /dev/null
+++ b/trunk/src/mame/drivers/igspoker.c
@@ -0,0 +1,2453 @@
+/*****************************************************************************
+
+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<igspoker_state>();
+ 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<igspoker_state>();
+ 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<igspoker_state>();
+ 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<igspoker_state>();
+ 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<igspoker_state>();
+ 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<igspoker_state>();
+ 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<igspoker_state>();
+ 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<igspoker_state>();
+ 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<igspoker_state>();
+ 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<igspoker_state>();
+ 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<igspoker_state>();
+ 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<igspoker_state>();
+ 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<igspoker_state>();
+/*
+ - 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<igspoker_state>();
+#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<igspoker_state>();
+#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<igspoker_state>();
+ 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 )