diff options
Diffstat (limited to 'src/mame/drivers/big10.cpp')
-rw-r--r-- | src/mame/drivers/big10.cpp | 276 |
1 files changed, 0 insertions, 276 deletions
diff --git a/src/mame/drivers/big10.cpp b/src/mame/drivers/big10.cpp deleted file mode 100644 index 25f46b8bae7..00000000000 --- a/src/mame/drivers/big10.cpp +++ /dev/null @@ -1,276 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Angelo Salese, Roberto Fresca, Tomasz Slanina -/*************************************************************************** - - BIG 10 - Success, 1985. - - Driver by Angelo Salese, Roberto Fresca & Tomasz Slanina. - -**************************************************************************** - - Dumper Notes: - - Z80A - XTAL is 21.?727 - YM2149 - 8-position DSW x1 - RAM 6264 x1 - RAM 41464 x4 - unknown SDIP64 chip with welded heatsink! Might be a video chip or MCU? - -**************************************************************************** - - Dev Notes... - - - Guessed and hooked the Yamaha VDP (SDIP64 IC). Same VDP used on MSX systems. - - Added v9938 stuff, interrupts, video start, machine reset, input ports, - DIP switch, ym2149 interface, pre-defined main Xtal and derivatives for - z80 and ym2149. - - Added NVRAM, defined half of DIP switches bank (coinage & main game rate). - Added inputs for coins A, B & C, payout, reset, and service mode. - - Reorganized the driver. - -**************************************************************************** - - How to Play: - - - This is actually a Keno game (slightly modified Raffle/Bingo/Tombola game). - - First off, select the bet amount with the BET button. - - Then choose between "SELECT 10" button (pseudo-random) or user-defined - numbers,by pressing the desired number with the numpad then "select" - (enters the decimals first then the units, if three or more buttons - are pressed the older pressed buttons are discarded, i.e. press 1234 - then SELECT, 1 and 2 are discarded). - - Press "CANCEL ALL" to redo the numbering scheme. - - Once that you are happy with it, press START to begin the extraction of - winning numbers. - - If you get at least 2-4 numbers out of 20 extracted numbers, you win a - prize and you are entitled to do a big/small (double up) sub-game. - -***************************************************************************/ - - -#define MASTER_CLOCK XTAL(21'477'272) /* Dumper notes poorly refers to a 21.?727 Xtal. */ - - -#include "emu.h" -#include "cpu/z80/z80.h" -#include "sound/ay8910.h" -#include "video/v9938.h" -#include "machine/nvram.h" -#include "machine/ticket.h" -#include "screen.h" -#include "speaker.h" - - -class big10_state : public driver_device -{ -public: - big10_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) - , m_maincpu(*this, "maincpu") - , m_hopper(*this, "hopper") - , m_in(*this, "IN%u", 1) - , m_lamp(*this, "lamp") - { } - - void big10(machine_config &config); - -protected: - virtual void machine_start() override { m_lamp.resolve(); } - void main_io(address_map &map); - void main_map(address_map &map); - - DECLARE_READ8_MEMBER(mux_r); - DECLARE_WRITE8_MEMBER(mux_w); - -private: - uint8_t m_mux_data; - required_device<cpu_device> m_maincpu; - required_device<ticket_dispenser_device> m_hopper; - required_ioport_array<6> m_in; - output_finder<> m_lamp; -}; - - -#define HOPPER_PULSE 40 // time between hopper pulses in milliseconds -#define VDP_MEM 0x40000 - - -/**************************************** -* Input Ports Demux & Common Routines * -****************************************/ - - -WRITE8_MEMBER(big10_state::mux_w) -{ - m_mux_data = ~data; - m_hopper->motor_w(BIT(data, 6)); - m_lamp = BIT(~data, 7); // maybe a coin counter? -} - -READ8_MEMBER(big10_state::mux_r) -{ - uint8_t result = 0xff; - for (int b = 0; b < 6; b++) - if (BIT(m_mux_data, b)) - result &= m_in[b]->read(); - - return result; -} - - -/************************************** -* Memory Map * -**************************************/ - -void big10_state::main_map(address_map &map) -{ - map(0x0000, 0xbfff).rom(); - map(0xc000, 0xdfff).ram().share("nvram"); - map(0xf000, 0xffff).ram(); -} - -void big10_state::main_io(address_map &map) -{ - map.global_mask(0xff); - map(0x00, 0x00).r(FUNC(big10_state::mux_r)); /* present in test mode */ - map(0x02, 0x02).portr("SYSTEM"); /* coins and service */ - map(0x98, 0x9b).rw("v9938", FUNC(v9938_device::read), FUNC(v9938_device::write)); - map(0xa0, 0xa1).w("aysnd", FUNC(ay8910_device::address_data_w)); - map(0xa2, 0xa2).r("aysnd", FUNC(ay8910_device::data_r)); /* Dip-Switches routes here. */ -} - - -/************************************** -* Input Ports * -**************************************/ - -static INPUT_PORTS_START( big10 ) - - PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Analyze Mode") PORT_TOGGLE - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) // in test mode, go to the game whilst keep pressed. - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // in test mode, go to the game whilst keep pressed. - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) - - PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("Number 0") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Number 1") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Number 2") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Number 3") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Number 4") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Number 5") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Number 6") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("Number 7") - - PORT_START("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Number 8") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("Number 9") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F) PORT_NAME("Flip Flop") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Select") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_NAME("Select 10") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("Cancel All") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START ) PORT_NAME("Start") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) - - PORT_START("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Big") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Small") - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // in test mode triggers a sound and screen turns black, hanging the game. - - PORT_START("IN4") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("IN5") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("IN6") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x03, "Credit Limit?" ) PORT_DIPLOCATION("DSW1:8,7") - PORT_DIPSETTING( 0x00, "500" ) - PORT_DIPSETTING( 0x01, "1000" ) - PORT_DIPSETTING( 0x02, "3000" ) - PORT_DIPSETTING( 0x03, "9999" ) - PORT_DIPNAME( 0x0c, 0x0c, "Unknown" ) PORT_DIPLOCATION("DSW1:6,5") // $C17E - PORT_DIPSETTING( 0x00, "0" ) - PORT_DIPSETTING( 0x04, "1" ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPNAME( 0x30, 0x30, "Main Game Rate" ) PORT_DIPLOCATION("DSW1:4,3") - PORT_DIPSETTING( 0x00, "60%" ) - PORT_DIPSETTING( 0x10, "70%" ) - PORT_DIPSETTING( 0x20, "80%" ) - PORT_DIPSETTING( 0x30, "90%" ) - PORT_DIPNAME( 0xC0, 0xc0, "Coinage (A=1; B=5; C=10)" ) PORT_DIPLOCATION("DSW1:2,1") - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x40, "x2" ) - PORT_DIPSETTING( 0x80, "x5" ) - PORT_DIPSETTING( 0xC0, "x10" ) - - /* Unconnected, probably missing from the board */ - PORT_START("DSW2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -/************************************** -* Machine Driver * -**************************************/ - -void big10_state::big10(machine_config &config) -{ - /* basic machine hardware */ - Z80(config, m_maincpu, MASTER_CLOCK/6); /* guess */ - m_maincpu->set_addrmap(AS_PROGRAM, &big10_state::main_map); - m_maincpu->set_addrmap(AS_IO, &big10_state::main_io); - - NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - - /* video hardware */ - v9938_device &v9938(V9938(config, "v9938", MASTER_CLOCK)); - v9938.set_screen_ntsc("screen"); - v9938.set_vram_size(VDP_MEM); - v9938.int_cb().set_inputline("maincpu", 0); - SCREEN(config, "screen", SCREEN_TYPE_RASTER); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); - ym2149_device &aysnd(YM2149(config, "aysnd", MASTER_CLOCK/12)); /* guess */ - aysnd.port_a_read_callback().set_ioport("DSW2"); - aysnd.port_b_read_callback().set_ioport("DSW1"); - aysnd.port_a_write_callback().set(FUNC(big10_state::mux_w)); - aysnd.add_route(ALL_OUTPUTS, "mono", 0.30); - - TICKET_DISPENSER(config, m_hopper, attotime::from_msec(HOPPER_PULSE), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW); -} - - -/************************************** -* ROM Load * -**************************************/ - -ROM_START( big10 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "1", 0x0000, 0x4000, CRC(03e50455) SHA1(36834d35d037303e8b9e4ce950d22f11a52e9388) ) - ROM_LOAD( "2", 0x4000, 0x4000, CRC(b4626a5f) SHA1(a9b3b9575c657748a7f0b60ec2c7411dad0c83c1) ) - ROM_LOAD( "3", 0x8000, 0x4000, CRC(8d15da74) SHA1(0e114de6fcf79beac800575bfb739e6a6bf35660) ) -ROM_END - - -/************************************** -* Game Driver(s) * -**************************************/ - -/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ -GAME( 1985, big10, 0, big10, big10, big10_state, empty_init, ROT0, "Success", "Big 10", 0 ) |