diff options
Diffstat (limited to 'trunk/src/mame/drivers/igspoker.c')
-rw-r--r-- | trunk/src/mame/drivers/igspoker.c | 2453 |
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 ) |