diff options
Diffstat (limited to 'src/mame/drivers/sigmab52.cpp')
-rw-r--r-- | src/mame/drivers/sigmab52.cpp | 729 |
1 files changed, 0 insertions, 729 deletions
diff --git a/src/mame/drivers/sigmab52.cpp b/src/mame/drivers/sigmab52.cpp deleted file mode 100644 index 659662240c5..00000000000 --- a/src/mame/drivers/sigmab52.cpp +++ /dev/null @@ -1,729 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Roberto Fresca, Sandro Ronco -/****************************************************************************** - - SIGMA B52 SYSTEM. - ----------------- - - Driver by Roberto Fresca. - - - Games running on this hardware: - - * Joker's Wild (B52 system, BP55114-V1104, Ver.054NMV), 199?, Sigma. - * Joker's Wild (B52 system, BP55114-V1104, Ver.054NMV, Harrah's GFX), 199?, Sigma. - * Joker's Wild (B52 system, WP02001-054, Ver.031WM), 199?, Sigma. - * Super 8 Ways FC (DB98103-011, Fruit combination), 1989, Sigma. - - -******************************************************************************* - - Hardware Notes: - --------------- - - CPU: - - - 2x MC68B09P ; 6809 CPU @ 2 MHz, from Motorola. - - 1x HD63484P8 @ 8MHz ; Advanced CRT controller (ACRTC), from Hitachi Semiconductor. - - RAM devices: - - - 8x TC51832ASPL-10 ; 32K x 8-bit CMOS Pseudo Static RAM. - - 1x HM62256ALP-10 ; 32K x 8-bit High Speed CMOS Static RAM. - - 1x HM6264ALP-10 ; 8K x 8-bit High Speed CMOS Static RAM. - - ROM devices: - - - 1x 64K main program ROM. - - 4x 64K graphics ROM. - - 1x 32K sound program ROM. - - 1x 256 bytes bipolar PROM. - - Sound device: - - - 1x YM3812 ; Sound IC, from Yamaha. - - Other: - - - 2x EF68B40P ; Frequency clock 2 MHz Programmable Timer, from SGS-Thomson Microelectronics. - - 1x EF68B50P ; Asynchronous Communications Interface Adapter (ACIA, 2 MHz), from SGS-Thomson Microelectronics. - - - 1x Xtal @ 18 MHz. - - 1x Xtal @ 8 MHz. - - 1x Xtal @ 3.579545 MHz. - - - Silkscreened on main PCB: - - "SIGMA GAME INC." - "VIDEO PCB 340016" - "REV. A" - - Silkscreened on daughterboard: - - "SIGMA GAMES 340003" - "BILL VALID BOARD" - - - - Seems that you can set the node (01-32) for a network. - - Cards graphics from set 2 have the Harrah's Casino logo. - - -******************************************************************************* - - - *** Game Notes *** - - Nothing yet... - - -******************************************************************************* - - --------------------------------- - *** Memory Map (preliminary) *** - --------------------------------- - - 0x0000 - 0x3FFF ; RAM. - 0xF730 - 0xF731 ; ACRTC. - 0xF740 - 0xF746 ; I/O. - - Sound: - - 0x8000 - 0xFFFF ; ROM space. - - -******************************************************************************* - - TODO: - - - Verify clocks. - - Improve memory map. - - Layout. - - Bill validator. - - ACIA - - -*******************************************************************************/ - -#include "emu.h" -#include "cpu/m6809/m6809.h" -#include "machine/6840ptm.h" -#include "machine/6850acia.h" -#include "machine/gen_latch.h" -#include "machine/nvram.h" -#include "sound/3812intf.h" -#include "video/hd63484.h" -#include "emupal.h" -#include "screen.h" -#include "speaker.h" - -#include "sigmab52.lh" - - -class sigmab52_state : public driver_device -{ -public: - sigmab52_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_audiocpu(*this, "audiocpu"), - m_6840ptm_2(*this, "6840ptm_2"), - m_palette(*this, "palette"), - m_bank1(*this, "bank1"), - m_prom(*this, "proms"), - m_in0(*this, "IN0"), - m_lamps(*this, "lamp%u", 0U), - m_towerlamps(*this, "towerlamp%u", 0U) - { } - - void jwildb52(machine_config &config); - - void init_jwildb52(); - - DECLARE_INPUT_CHANGED_MEMBER(coin_drop_start); - -private: - DECLARE_READ8_MEMBER(unk_f700_r); - DECLARE_READ8_MEMBER(unk_f760_r); - DECLARE_READ8_MEMBER(in0_r); - DECLARE_WRITE8_MEMBER(bank1_w); - DECLARE_WRITE8_MEMBER(palette_bank_w); - DECLARE_WRITE8_MEMBER(audiocpu_cmd_irq_w); - DECLARE_WRITE8_MEMBER(audiocpu_irq_ack_w); - DECLARE_WRITE8_MEMBER(hopper_w); - DECLARE_WRITE8_MEMBER(lamps1_w); - DECLARE_WRITE8_MEMBER(lamps2_w); - DECLARE_WRITE8_MEMBER(tower_lamps_w); - DECLARE_WRITE8_MEMBER(coin_enable_w); - DECLARE_WRITE_LINE_MEMBER(ptm2_irq); - void audiocpu_irq_update(); - - virtual void machine_start() override; - virtual void machine_reset() override; - - void jwildb52_hd63484_map(address_map &map); - void jwildb52_map(address_map &map); - void sound_prog_map(address_map &map); - - required_device<cpu_device> m_maincpu; - required_device<cpu_device> m_audiocpu; - required_device<ptm6840_device> m_6840ptm_2; - required_device<palette_device> m_palette; - required_memory_bank m_bank1; - required_region_ptr<uint8_t> m_prom; - required_ioport m_in0; - output_finder<10> m_lamps; - output_finder<2> m_towerlamps; - - uint64_t m_coin_start_cycles; - uint64_t m_hopper_start_cycles; - int m_audiocpu_cmd_irq; -}; - - -/************************* -* Misc Handlers * -*************************/ - -void sigmab52_state::audiocpu_irq_update() -{ - m_audiocpu->set_input_line(M6809_IRQ_LINE, (m_6840ptm_2->irq_state() || m_audiocpu_cmd_irq) ? ASSERT_LINE : CLEAR_LINE); -} - -WRITE_LINE_MEMBER(sigmab52_state::ptm2_irq) -{ - audiocpu_irq_update(); -} - -READ8_MEMBER(sigmab52_state::unk_f700_r) -{ - return 0x7f; -} - -READ8_MEMBER(sigmab52_state::unk_f760_r) -{ - return 0x80; // used for test the sound CPU -} - -READ8_MEMBER(sigmab52_state::in0_r) -{ - uint8_t data = 0xff; - - // if the hopper is active simulate the coin-out sensor - if (m_hopper_start_cycles) - { - attotime diff = m_maincpu->cycles_to_attotime(m_maincpu->total_cycles() - m_hopper_start_cycles); - - if (diff > attotime::from_msec(100)) - data &= ~0x01; - - if (diff > attotime::from_msec(200)) - m_hopper_start_cycles = m_maincpu->total_cycles(); - } - - // simulates the passage of coins through multiple sensors - if (m_coin_start_cycles) - { - attotime diff = m_maincpu->cycles_to_attotime(m_maincpu->total_cycles() - m_coin_start_cycles); - - if (diff > attotime::from_msec(20) && diff < attotime::from_msec(100)) - data &= ~0x02; - if (diff > attotime::from_msec(50) && diff < attotime::from_msec(200)) - data &= ~0x04; - - if (diff > attotime::from_msec(200)) - m_coin_start_cycles = 0; - } - - uint16_t in0 = m_in0->read(); - for (int i = 0; i < 16; i++) - if (!BIT(in0, i)) - { - data &= ~(i << 4); - break; - } - - return data; -} - -WRITE8_MEMBER(sigmab52_state::bank1_w) -{ - m_bank1->set_entry(BIT(data, 7)); -} - -WRITE8_MEMBER(sigmab52_state::hopper_w) -{ - m_hopper_start_cycles = data & 0x01 ? m_maincpu->total_cycles() : 0; -} - -WRITE8_MEMBER(sigmab52_state::lamps1_w) -{ - m_lamps[offset] = data & 1; -} - -WRITE8_MEMBER(sigmab52_state::lamps2_w) -{ - m_lamps[6 + offset] = data & 1; -} - -WRITE8_MEMBER(sigmab52_state::tower_lamps_w) -{ - m_towerlamps[offset] = data & 1; -} - -WRITE8_MEMBER(sigmab52_state::coin_enable_w) -{ - machine().bookkeeping().coin_lockout_w(0, data & 0x01 ? 0 : 1); -} - -WRITE8_MEMBER(sigmab52_state::audiocpu_cmd_irq_w) -{ - m_audiocpu_cmd_irq = ASSERT_LINE; - audiocpu_irq_update(); -} - -WRITE8_MEMBER(sigmab52_state::audiocpu_irq_ack_w) -{ - if (data & 0x01) - { - m_audiocpu_cmd_irq = CLEAR_LINE; - audiocpu_irq_update(); - } -} - -WRITE8_MEMBER(sigmab52_state::palette_bank_w) -{ - int bank = data & 0x0f; - - for (int i = 0; i < m_palette->entries(); i++) - { - uint8_t d = m_prom[(bank << 4) | i]; - m_palette->set_pen_color(i, pal3bit(d >> 5), pal3bit(d >> 2), pal2bit(d >> 0)); - } -} - -/************************* -* Memory Maps * -*************************/ - -void sigmab52_state::jwildb52_map(address_map &map) -{ - map(0x0000, 0x3fff).ram().share("nvram"); - map(0x4000, 0x7fff).bankr("bank1"); - - map(0x8000, 0xf6ff).rom(); - - map(0xf700, 0xf700).r(FUNC(sigmab52_state::unk_f700_r)); // ACIA ??? - map(0xf710, 0xf710).w(FUNC(sigmab52_state::bank1_w)); - - map(0xf720, 0xf727).rw("6840ptm_1", FUNC(ptm6840_device::read), FUNC(ptm6840_device::write)); - - map(0xf730, 0xf730).rw("hd63484", FUNC(hd63484_device::status8_r), FUNC(hd63484_device::address8_w)); - map(0xf731, 0xf731).rw("hd63484", FUNC(hd63484_device::data8_r), FUNC(hd63484_device::data8_w)); - - map(0xf740, 0xf740).r(FUNC(sigmab52_state::in0_r)); - map(0xf741, 0xf741).portr("IN1"); - map(0xf742, 0xf742).portr("IN2"); - map(0xf743, 0xf743).portr("DSW1"); - map(0xf744, 0xf744).portr("DSW2"); - map(0xf745, 0xf745).portr("DSW3"); - map(0xf746, 0xf746).portr("DSW4"); - map(0xf747, 0xf747).portr("IN3"); - map(0xf750, 0xf750).w(FUNC(sigmab52_state::palette_bank_w)); - - map(0xf760, 0xf760).r(FUNC(sigmab52_state::unk_f760_r)); - -// map(0xf770, 0xf77f) Bill validator - - map(0xf780, 0xf780).w(FUNC(sigmab52_state::audiocpu_cmd_irq_w)); - map(0xf790, 0xf790).w("soundlatch", FUNC(generic_latch_8_device::write)); - - map(0xf7b0, 0xf7b0).w(FUNC(sigmab52_state::coin_enable_w)); - map(0xf7d5, 0xf7d5).w(FUNC(sigmab52_state::hopper_w)); - map(0xf7b2, 0xf7b7).w(FUNC(sigmab52_state::lamps1_w)); - map(0xf7c0, 0xf7c3).w(FUNC(sigmab52_state::lamps2_w)); - map(0xf7d6, 0xf7d7).w(FUNC(sigmab52_state::tower_lamps_w)); - map(0xf800, 0xffff).rom(); -} - -/* Unknown R/W: - - F700 W - F701 R - - F7D4 W - - F7E6 RW - F7E7 RW - -*/ - -void sigmab52_state::sound_prog_map(address_map &map) -{ - map(0x0000, 0x1fff).ram(); - map(0x6020, 0x6027).rw(m_6840ptm_2, FUNC(ptm6840_device::read), FUNC(ptm6840_device::write)); - map(0x6030, 0x6030).w(FUNC(sigmab52_state::audiocpu_irq_ack_w)); - map(0x6050, 0x6050).r("soundlatch", FUNC(generic_latch_8_device::read)); - map(0x6060, 0x6061).rw("ymsnd", FUNC(ym3812_device::read), FUNC(ym3812_device::write)); - map(0x8000, 0xffff).rom().region("audiocpu", 0); -} - - -void sigmab52_state::jwildb52_hd63484_map(address_map &map) -{ - map(0x00000, 0x1ffff).ram(); - map(0x20000, 0x3ffff).rom().region("gfx1", 0); -} - -INPUT_CHANGED_MEMBER( sigmab52_state::coin_drop_start ) -{ - if (newval && !m_coin_start_cycles) - m_coin_start_cycles = m_maincpu->total_cycles(); -} - - -/************************* -* Input Ports * -*************************/ - -static INPUT_PORTS_START( jwildb52 ) - PORT_START("IN0") - PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) - - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x00) PORT_NAME("Double") - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x00) PORT_NAME("Deal / Draw") - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x00) PORT_NAME("Max Bet") - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_POKER_BET ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x00) PORT_NAME("One Bet") - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x00) PORT_NAME("Collect / Payout") - - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x10) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x10) PORT_NAME("Deal / Draw") - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x10) PORT_NAME("Max Bet") - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_POKER_BET ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x10) PORT_NAME("One Bet") - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x10) - - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x40) PORT_NAME("Double") - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x40) PORT_NAME("Deal") - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x40) PORT_NAME("Draw") - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x40) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x40) PORT_NAME("Collect") - - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x50) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x50) PORT_NAME("Deal") - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x50) PORT_NAME("Draw") - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x50) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CONDITION("DSW1", 0x50, EQUALS, 0x50) - - PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CODE(KEYCODE_1_PAD) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Meter") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) PORT_NAME("Reset") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_T) PORT_NAME("Last") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_DOOR ) PORT_NAME("Machine Door") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hopper Weight Switch") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) // Hold 1 - - PORT_START("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Attendant Call") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) // Hold 2 - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Drop Door") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CODE(KEYCODE_2_PAD) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) // Hold 3 - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) // Hold 4 - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) // Hold 5 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Meter Wire") - - PORT_START("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CODE(KEYCODE_3_PAD) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CODE(KEYCODE_4_PAD) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CODE(KEYCODE_5_PAD) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CODE(KEYCODE_6_PAD) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CODE(KEYCODE_7_PAD) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("V Door") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CODE(KEYCODE_8_PAD) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, sigmab52_state, coin_drop_start, 0) - - PORT_START("DSW1") - PORT_DIPNAME( 0x01, 0x01, "DSW1-1" ) PORT_DIPLOCATION("SW1:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "DSW1-2" ) PORT_DIPLOCATION("SW1:2") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "DSW1-3" ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "DSW1-4" ) PORT_DIPLOCATION("SW1:4") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "DSW1-5" ) PORT_DIPLOCATION("SW1:5") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "DSW1-6" ) PORT_DIPLOCATION("SW1:6") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "DSW1-7" ) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "DSW1-8" ) PORT_DIPLOCATION("SW1:8") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x01, "JW-1" ) PORT_DIPLOCATION("JW:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "JW-2" ) PORT_DIPLOCATION("JW:2") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "JW-3" ) PORT_DIPLOCATION("JW:3") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "JW-4" ) PORT_DIPLOCATION("JW:4") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "JW-5" ) PORT_DIPLOCATION("JW:5") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "JW-6" ) PORT_DIPLOCATION("JW:6") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "DSW1-9" ) PORT_DIPLOCATION("SW1:9") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "DSW1-10" ) PORT_DIPLOCATION("SW1:10") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START("DSW3") - PORT_DIPNAME( 0x01, 0x01, "DSW2-1" ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "DSW2-2" ) PORT_DIPLOCATION("SW2:2") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "DSW2-3" ) PORT_DIPLOCATION("SW2:3") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "DSW2-4" ) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "DSW2-5" ) PORT_DIPLOCATION("SW2:5") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "DSW2-6" ) PORT_DIPLOCATION("SW2:6") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "DSW2-7" ) PORT_DIPLOCATION("SW2:7") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "DSW2-8" ) PORT_DIPLOCATION("SW2:8") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START("DSW4") - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x40, 0x40, "DSW2-9" ) PORT_DIPLOCATION("SW2:9") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "DSW2-10" ) PORT_DIPLOCATION("SW2:10") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - -INPUT_PORTS_END - -static INPUT_PORTS_START( s8waysfc ) - PORT_INCLUDE( jwildb52 ) - - PORT_MODIFY("IN0") - PORT_BIT( 0x07ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Start") - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Max Bet") - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("One Bet") - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_NAME("Collect / Payout") -INPUT_PORTS_END - - -/************************* -* Machine Start * -*************************/ - -void sigmab52_state::machine_start() -{ - m_bank1->configure_entries(0, 2, memregion("maincpu")->base(), 0x4000); - m_lamps.resolve(); - m_towerlamps.resolve(); -} - -void sigmab52_state::machine_reset() -{ - m_bank1->set_entry(1); - m_coin_start_cycles = 0; - m_hopper_start_cycles = 0; - m_audiocpu_cmd_irq = CLEAR_LINE; -} - - -/************************* -* Machine Drivers * -*************************/ - -void sigmab52_state::jwildb52(machine_config &config) -{ - /* basic machine hardware */ - MC6809(config, m_maincpu, XTAL(8'000'000)); - m_maincpu->set_addrmap(AS_PROGRAM, &sigmab52_state::jwildb52_map); - - MC6809(config, m_audiocpu, XTAL(8'000'000)); - m_audiocpu->set_addrmap(AS_PROGRAM, &sigmab52_state::sound_prog_map); - - ptm6840_device &ptm1(PTM6840(config, "6840ptm_1", XTAL(8'000'000) / 8)); // FIXME - ptm1.irq_callback().set_inputline("maincpu", M6809_IRQ_LINE); - - PTM6840(config, m_6840ptm_2, XTAL(8'000'000) / 8); // FIXME - m_6840ptm_2->irq_callback().set(FUNC(sigmab52_state::ptm2_irq)); - - NVRAM(config, "nvram", nvram_device::DEFAULT_NONE); - - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(60); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); - screen.set_size(1024, 1024); - screen.set_visarea(0, 544-1, 0, 436-1); - screen.set_screen_update("hd63484", FUNC(hd63484_device::update_screen)); - screen.set_palette(m_palette); - - HD63484(config, "hd63484", XTAL(8'000'000)).set_addrmap(0, &sigmab52_state::jwildb52_hd63484_map); - - PALETTE(config, m_palette).set_entries(16); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - - GENERIC_LATCH_8(config, "soundlatch"); - - YM3812(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0); -} - - -/************************* -* Rom Load * -*************************/ - -/* Joker's Wild - BP55114-V1104, Ver.054NMV - Modern cards set. Normal cardsback. -*/ -ROM_START( jwildb52 ) - ROM_REGION( 0x10000, "maincpu", 0 ) // BP55114-V1104, Ver.054NMV - ROM_LOAD( "poker.ic95", 0x00000, 0x10000, CRC(07eb9007) SHA1(ee814c40c6d8c9ea9e5246cae0cfa2c30f2976ed) ) - - ROM_REGION16_BE( 0x40000, "gfx1", 0 ) - ROM_LOAD32_BYTE( "cards_2001-1.ic45", 0x00003, 0x10000, CRC(7664455e) SHA1(c9f129060e63b9ac9058ab94208846e4dc578ead) ) - ROM_LOAD32_BYTE( "cards_2001-2.ic46", 0x00001, 0x10000, CRC(c1455d64) SHA1(ddb576ba471b5d2faa415ec425615cf5f9d87911) ) - ROM_LOAD32_BYTE( "cards_2001-3.ic47", 0x00000, 0x10000, CRC(cb2ece6e) SHA1(f2b6949085fe395d0fdd16322a880ec87e2efd50) ) - ROM_LOAD32_BYTE( "cards_2001-4.ic48", 0x00002, 0x10000, CRC(8131d236) SHA1(8984aa1f2af70df41973b61df17f184796a2ffe9) ) - - ROM_REGION( 0x8000, "audiocpu", 0 ) - ROM_LOAD( "sound-01-00.43", 0x0000, 0x8000, CRC(2712d44c) SHA1(295526b27676cd97cbf111d47305d63c2b3ea50d) ) - - ROM_REGION( 0x0100, "proms", 0 ) - ROM_LOAD( "mb7118.41", 0x0000, 0x0100, CRC(b362f9e2) SHA1(3963b40389ed6584e4cd96ab48849552857d99af) ) -ROM_END - - -/* Joker's Wild - BP55114-V1104, Ver.054NMV - Modern cards set. Harrah's cardsback. -*/ -ROM_START( jwildb52h ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "jokers_wild_ver_xxx.ic95", 0x00000, 0x10000, CRC(07eb9007) SHA1(ee814c40c6d8c9ea9e5246cae0cfa2c30f2976ed) ) - - ROM_REGION16_BE( 0x40000, "gfx1", 0 ) - ROM_LOAD32_BYTE( "2006-1_harrahs.ic45", 0x00003, 0x10000, CRC(6e6871dc) SHA1(5dfc99c808c06ec34838324181988d4550c1ed1a) ) - ROM_LOAD32_BYTE( "2006-2_harrahs.ic46", 0x00001, 0x10000, CRC(1039c62d) SHA1(11f0dbcbbff5f6e9028a0305f7e16a0654be40d4) ) - ROM_LOAD32_BYTE( "2006-3_harrahs.ic47", 0x00000, 0x10000, CRC(d66af95a) SHA1(70bba1aeea9221541b82642045ce8ecf26e1d08c) ) - ROM_LOAD32_BYTE( "2006-4_harrahs.ic48", 0x00002, 0x10000, CRC(2bf196cb) SHA1(686ca0dd84c48f51efee5349ea3db65531dd4a52) ) - - ROM_REGION( 0x8000, "audiocpu", 0 ) - ROM_LOAD( "poker-01-00.43", 0x0000, 0x8000, CRC(2712d44c) SHA1(295526b27676cd97cbf111d47305d63c2b3ea50d) ) - - ROM_REGION( 0x0100, "proms", 0 ) - ROM_LOAD( "mb7118.41", 0x0000, 0x0100, CRC(b362f9e2) SHA1(3963b40389ed6584e4cd96ab48849552857d99af) ) -ROM_END - - -/* Joker's Wild - WP02001-054, Ver.031WM - Classic cards set. Normal cardsback. -*/ -ROM_START( jwildb52a ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "sigm_wrk.bin", 0x00000, 0x10000, CRC(15c83c6c) SHA1(7a05bd94ea8b1ad051fbe6580a6550d4bb47dd15) ) - - ROM_REGION16_BE( 0x40000, "gfx1", 0 ) - ROM_LOAD32_BYTE( "c-1416-1.ic45", 0x00003, 0x10000, CRC(02a0b517) SHA1(5a0818a174683f791ca885bfdfd7555616c80758) ) - ROM_LOAD32_BYTE( "c-1416-2.ic46", 0x00001, 0x10000, CRC(3196e486) SHA1(2d264e518083ff05d1a1eb7f8e1649feb70349e7) ) - ROM_LOAD32_BYTE( "c-1416-3.ic47", 0x00000, 0x10000, CRC(1c9a2939) SHA1(e18fdf9a656687db47ac00700e7721c3d8e800c5) ) - ROM_LOAD32_BYTE( "c-1416-4.ic48", 0x00002, 0x10000, CRC(7bd8bf78) SHA1(ddacbb75df14a343e69949dcaa14ce1a7ec8407a) ) - - /* No sound dumps. Using the ones from parent set for now... */ - - ROM_REGION( 0x8000, "audiocpu", 0 ) - ROM_LOAD( "sound-01-00.43", 0x0000, 0x8000, BAD_DUMP CRC(2712d44c) SHA1(295526b27676cd97cbf111d47305d63c2b3ea50d) ) - - ROM_REGION( 0x0100, "proms", 0 ) - ROM_LOAD( "mb7118.41", 0x0000, 0x0100, BAD_DUMP CRC(b362f9e2) SHA1(3963b40389ed6584e4cd96ab48849552857d99af) ) -ROM_END - - -/* Super 8 Ways FC - Fruit combination. - DB98103-011. -*/ -ROM_START( s8waysfc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "dv98103.011", 0x00000, 0x10000, CRC(416190a1) SHA1(e2738644efc6c2adcea2470b482f3f818ed9af8d) ) - - ROM_REGION16_BE( 0x40000, "gfx1", 0 ) - ROM_LOAD32_BYTE( "symb112.1", 0x00003, 0x10000, CRC(b09bd4f5) SHA1(af04845e84cb381f9babe088884b5bbab927a326) ) - ROM_LOAD32_BYTE( "symb112.2", 0x00001, 0x10000, CRC(462a2d55) SHA1(3157893d150b98c80c0045f78cb2520e8b3ce4eb) ) - ROM_LOAD32_BYTE( "symb112.3", 0x00000, 0x10000, CRC(be0c2e64) SHA1(82de83fc4754ff73e80e22187b7fba041832613e) ) - ROM_LOAD32_BYTE( "symb112.4", 0x00002, 0x10000, CRC(f9d8529c) SHA1(7cd54bda71fb38c7bcbea42be4e322aec0581964) ) - - ROM_REGION( 0x8000, "audiocpu", 0 ) - ROM_LOAD( "v-slot02.00", 0x00000, 0x08000, CRC(bc1eec0a) SHA1(300ebfbd314c58b434bb20a5c3c8f7463b424207) ) - - /* No prom dumps. Using the ones from jwildb52 for now... */ - - ROM_REGION( 0x0100, "proms", 0 ) - ROM_LOAD( "mb7118.41", 0x0000, 0x0100, CRC(b362f9e2) SHA1(3963b40389ed6584e4cd96ab48849552857d99af) ) -ROM_END - - -/************************* -* Driver Init * -*************************/ - -void sigmab52_state::init_jwildb52() -{ -} - - -/************************* -* Game Drivers * -*************************/ - -/* YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS */ -GAMEL( 199?, jwildb52, 0, jwildb52, jwildb52, sigmab52_state, init_jwildb52, ROT0, "Sigma", "Joker's Wild (B52 system, BP55114-V1104, Ver.054NMV)", MACHINE_NOT_WORKING, layout_sigmab52 ) -GAMEL( 199?, jwildb52h, jwildb52, jwildb52, jwildb52, sigmab52_state, init_jwildb52, ROT0, "Sigma", "Joker's Wild (B52 system, BP55114-V1104, Ver.054NMV, Harrah's GFX)", MACHINE_NOT_WORKING, layout_sigmab52 ) -GAMEL( 199?, jwildb52a, jwildb52, jwildb52, jwildb52, sigmab52_state, init_jwildb52, ROT0, "Sigma", "Joker's Wild (B52 system, WP02001-054, Ver.031WM)", MACHINE_NOT_WORKING, layout_sigmab52 ) -GAME ( 1989, s8waysfc, 0, jwildb52, s8waysfc, sigmab52_state, init_jwildb52, ROT0, "Sigma", "Super 8 Ways FC (DB98103-011, Fruit combination)", MACHINE_NOT_WORKING ) |