summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/mgames.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/mgames.cpp')
-rw-r--r--src/mame/drivers/mgames.cpp693
1 files changed, 0 insertions, 693 deletions
diff --git a/src/mame/drivers/mgames.cpp b/src/mame/drivers/mgames.cpp
deleted file mode 100644
index efe910721a1..00000000000
--- a/src/mame/drivers/mgames.cpp
+++ /dev/null
@@ -1,693 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Angelo Salese, Roberto Fresca, David Haywood
-/*********************************************************************************
-
- Match Games.
- CRT 100 + CRT 810 boards system.
- Merit Industries, 1981.
-
- Driver by Angelo Salese, David Haywood & Roberto Fresca.
-
- Maybe the first Merit videopoker.
- The system has 4 different themed skill games, selectable through DIP switches:
-
- * "The Frog Pond"
- * "Pharaohs"
- * "Wild Bulls"
- * "The White Knight"
-
-**********************************************************************************
-
- From the Flyer...
-
- FOR AMUSEMENT ONLY.
-
- The ingenious Match Games offers something for everyone. Four captivating themes
- with brilliant graphics, challenging play action, an enticing bonus feature and a
- host of options to tailor the game to any location.
-
- Match Games is today's perfect alternative in adult video skill games...
-
-
- MATCH GAMES...
-
- Unique and captivating graphics start the fun out right.
- Players score skills points as they match the amusing characters to winning color
- and number combinations. Play appeal stays high as new characters are introduced.
-
- "Wild" characters liven the action even more and build special bonus points, co-
- llected on a 5-way number match. The appeal is irresistible... Players stay hoo-
- ked in for lot more action (and more earnings) for you!.
-
-
- GAME THEMES:
-
- Match Games acknowledges every scoring combination by displaying its own special
- name keyed to each game theme.
-
- Every time 2 "Wild" characters pop up together, special bonus symbols appear,
- increasing bonus by 5 points.
-
- * "THE WHITE KNIGHT" features knights in armor with colored plumes and wild
- 'White Knights'.
-
- * "THE FROG POND" stars colorful and humorous frogs perched on top of mushrooms.
-
- * "WILD BULLS" is based around multi-colored sets of bulls with 2 wild 'Red Bulls'.
-
- * "PHARAOHS" features an Egyptian look with comical mummies as the wild characters.
-
-
- FEATURES:
-
- - Four game themes (operator selected).
- - "Wild" characters.
- - Bonus Feature, with color keyed graphics.
- - Adjustable game difficulty settings.
- - Adjustable play limit (1-10-20-50).
- - On screen bookkeeping.
- - Battery backup.
- - Hi quality 13" monitor.
- - Complete schematics.
- - Easy front access servicing.
- - All plywood construction.
- - Top drop coin entry.
- - Hi security cash box.
-
-
-**********************************************************************************
-
- Hardware Notes:
- ---------------
-
- 1x OSC = 18.000 MHz.
- 1x CPU = Zilog Z80 (Z0840006PSC).
- 4x 74LS253N (multiplexers).
- 4x MM2114N-3 (4096-Bit Static RAM).
- 2x SCM5101E (256x4 Static RAM).
-
- The PCB has a socket for two standard AA batteries
-
-
- MAIN BOARD CRT 100:
- .------------------------. .-------------------. .---------------------------.
- | | ||||||||||||||||||||| | .------------. |
- | '-' J2 '-' -|4.7 Ohm 10% |- |
- | '------------' |
- | |
- | DSW (8) .-+-.-+-.-+-.-+-. LM340K-5 |
- | | | | | | 7805K |
- | | 4x 4700uF 16V | KBL005 |
- | | capacitors | 8137 |
- | | | | | | AC |
- | '-+-'-+-'-+-'-+-' |
- | |
- | |
- | 74LS253N 74LS253N 74LS253N 74LS253 |
- | .-------------. |
- | | 4700uF 35V | MC7812CT |
- | -| capacitor |- |
- | '-------------' |
- | .------------------. |
- | | AA BATTERY | |
- | |------------------| |
- | | AA BATTERY | - |
- | .-. '------------------' 74LS04N - |
- | | | - J1 |
- | | | 74LS04N 74LS02N 74LS74N 74LS02N 74LS132N - |
- | | | - |
- | | | 74LS138N 74LS08N 7416N 74LS10N 74LS161N 74123N - |
- | | | - |
- | |J| 74LS00N 74LS11N 74LS161N 74LS157N 74LS161N 7416N |
- | |4| |
- | | | 74LS02N 74LS32N 74LS259N 74LS151N 74LS11N LED |
- | | | 18.000 OSC |
- | | | 74LS367N 74LS161N 74LS161N 74LS04N DM7404N |
- | | | |
- | | | 74LS245PC .-------------. 74LS74N LM3302N |
- | | | | Z80 CPU | |
- | | | 74LS245PC '-------------' MM2114N-3 74LS174N 74LS166J |
- | | | .-----. |
- | '-' 74LS138N 74LS245PC 74LS245PC MM2114N-3 74LS157N | U68 | |
- | '-----' |
- | SCM5101E 74LS245PC MM2114N-3 74LS174N .-----. |
- | .-----. | U67 | |
- | SCM5101E |-U18-| 74LS157N MM2114N-3 74LS138N |-----| |
- | .-----. .-----. |-----| | U66 | |
- | |-U16-| |-U13-| |-U19-| 74LS157N 74LS161N '-----' |
- | |-----| |-----| |-----| .-----. |
- | |-U15-| |-U14-| |-U17-| 74LS157N 74LS157N | U65 | |
- | '-----' '-----' '-----' '-----' |
- '----------------------------------------------------------------------------'
-
- U13 = MLTI 0 U68 = CGM 0
- U14 = MLTI 1 U67 = CGM 1
- U15 = MLTI 2 U66 = CGM 2
- U16 = MLTI 3 U65 = CGM 3
- U17 = MLTI 4 U1 = Zilog Z0840006PSC Z80 CPU 9512 2K
- U18 = MLTI 5
-
- J4 = Conn to video I/O board
- J1 = Jumpers bank? (see multiplexed port)
-
-
- VIDEO I/O BOARD CRT 810:
- .-------------------.
- .-----------------------|||||||||||||||||||||----------------------.
- | |
- | LM380N |
- | DISCRETE |
- | CIRCUITRY MC1455P |
- | |
- | |
- | ML7805 |
- | SW 7407-N SW 7407-N SW 7407-N SW 7407-N +5V. |
- | |
- | 74LS259N 74LS259N 74LS259N MC7812 |
- | +12V. |
- | |
- '----------------||||||||||||||||||||||||||||||||||----------------'
- '--------------------------------'
- To J4 on Main Board
-
- LM380N = 2.5W Audio Power Amplifier.
- MC1455P = Direct Replacement for NE555 Timers.
-
- (Audio IS discrete).
-
- 4x 7407N (Buffer Gates Non-Inverting).
- 4x 74LS259N (8-Bit Addressable Latches).
-
-
-**********************************************************************************
-
- Dev Notes:
- ----------
-
- Additional work:
-
- * Full Inputs.
- * DIP Switches.
- * Simulated spark-watchdog circuitery.
- * Demuxed custom port.
- * NVRAM support.
- * CPU clock derived from #defined crystal.
- * 8000-8007 Output ports.
- * Coin related counters.
- * Sound components and trigger found at 8000-8003, bit2.
- * Full lamps support.
- * PCBs layouts & technical notes.
-
- Todo:
-
- - Writes to offset 0x0158 (so many!)
-
- - Still analyze 8000-8007 offset range remaining bits.
- These writes sounds like a BCD valueset.
- Maybe were intended formerly to send some data to 7seg display unit.
-
- - Color system (no bipolar PROMs in the system), needs a reference
-
- - Discrete sound.
-
-**********************************************************************************/
-
-#define MASTER_CLOCK XTAL(18'000'000)
-
-#include "emu.h"
-#include "cpu/z80/z80.h"
-#include "machine/nvram.h"
-#include "emupal.h"
-#include "screen.h"
-#include "tilemap.h"
-
-#include "mgames.lh"
-
-
-class mgames_state : public driver_device
-{
-public:
- mgames_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- m_video(*this, "video"),
- m_maincpu(*this, "maincpu"),
- m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette"),
- m_lamps(*this, "lamp%u", 1U)
- { }
-
- void mgames(machine_config &config);
-
-private:
- tilemap_t *m_tilemap;
-
- DECLARE_READ8_MEMBER(mixport_r);
- DECLARE_WRITE8_MEMBER(outport0_w);
- DECLARE_WRITE8_MEMBER(outport1_w);
- DECLARE_WRITE8_MEMBER(outport2_w);
- DECLARE_WRITE8_MEMBER(outport3_w);
- DECLARE_WRITE8_MEMBER(outport4_w);
- DECLARE_WRITE8_MEMBER(outport5_w);
- DECLARE_WRITE8_MEMBER(outport6_w);
- DECLARE_WRITE8_MEMBER(outport7_w);
-
- void mgames_palette(palette_device &palette) const;
- uint32_t screen_update_mgames(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- TILE_GET_INFO_MEMBER(tile_info);
-
- void main_map(address_map &map);
-
- virtual void machine_start() override;
-
- uint8_t m_output[8];
- required_shared_ptr<uint8_t> m_video;
- int m_mixdata;
- required_device<cpu_device> m_maincpu;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
- output_finder<9> m_lamps;
-};
-
-TILE_GET_INFO_MEMBER( mgames_state::tile_info )
-{
- uint8_t code = m_video[tile_index];
- uint8_t color = m_video[tile_index + 0x400] & 0x3f;
-
- SET_TILE_INFO_MEMBER(0, code, color, 0);
-}
-
-void mgames_state::machine_start()
-{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mgames_state::tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
-
- m_lamps.resolve();
-}
-
-uint32_t mgames_state::screen_update_mgames(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- m_tilemap->mark_all_dirty();
- m_tilemap->draw(screen, bitmap, cliprect, 0, 0);
-
- return 0;
-}
-
-void mgames_state::mgames_palette(palette_device &palette) const
-{
- for (int i = 0; i < 64; i++)
- {
- palette.set_indirect_color(i, rgb_t(
- pal2bit((i >> 0) & 3),
- pal2bit((i >> 2) & 3),
- pal2bit((i >> 4) & 3)
- ));
- palette.set_pen_indirect(i * 2 + 0, 0); // all tiles black background
- palette.set_pen_indirect(i * 2 + 1, i);
- }
-}
-
-READ8_MEMBER(mgames_state::mixport_r)
-{
-/* - bits -
- 7654 3210
- ---- ---x Unknown.
- ---- --x- Spark-Watchdog...
- ---- -x-- DIP Switch Bank #2.
- ---- x--- DIP Switch Bank #2.
- ---x ---- DIP Switch Bank #2.
- xxx- ---- Unknown.
-
- Spark-Watchdog... The system expect status changes on bit1, otherwise stop the hardware with an error message.
- The line seems to be tied to a clock. We can't use XORed status due to the nested checks.
- If you change the status *every* read, the HW stucks.
-*/
-
- m_mixdata = (ioport("SW2")->read() & 0xfd) | (machine().rand() & 0x02);
-
- return m_mixdata;
-}
-
-/***** Port 0158 *****
-
- - bits -
- 7654 3210
- ---- ---x Unknown.
- ---- --x- Unknown.
- ---- -x-- Unknown.
- ---- x--- Unknown.
- ---x ---- Unknown.
- xxx- ---- Unknown.
-*/
-
-//WRITE8_MEMBER(mgames_state::muxed_w)
-//{
-// popmessage("written : %02X %02X %02X %02X %02X %02X %02X %02X", data & 0x01, data & 0x02, data & 0x04, data & 0x08, data & 0x10, data & 0x20, data & 0x40, data & 0x80);
-//}
-
-/***** Port 8000 *****
-
- - bits -
- 7654 3210
- ---- ---x BET lamp.
- ---- --x- HOLD1 lamp.
- ---- -x-- Sound component #1.
- ---- x--- Unknown.
- ---x ---- Unknown.
- xxx- ---- Unknown.
-*/
-
-WRITE8_MEMBER(mgames_state::outport0_w)
-{
- m_lamps[0] = BIT(data, 0); /* Lamp 1 - BET */
- m_lamps[4] = BIT(data, 1); /* Lamp 5 - HOLD 1 */
-
- m_output[0] = data;
- popmessage("outport0 : %02X %02X %02X %02X %02X %02X %02X %02X", m_output[0], m_output[1], m_output[2], m_output[3], m_output[4], m_output[5], m_output[6], m_output[7]);
-}
-
-/***** Port 8001 *****
-
- - bits -
- 7654 3210
- ---- ---x DEAL lamp.
- ---- --x- HOLD2 lamp.
- ---- -x-- Sound component #2.
- ---- x--- Unknown.
- ---x ---- Unknown.
- xxx- ---- Unknown.
-*/
-
-WRITE8_MEMBER(mgames_state::outport1_w)
-{
- m_lamps[1] = BIT(data, 0); /* Lamp 2 - DEAL */
- m_lamps[5] = BIT(data, 1); /* Lamp 6 - HOLD 2 */
-
- m_output[1] = data;
- popmessage("outport1 : %02X %02X %02X %02X %02X %02X %02X %02X", m_output[0], m_output[1], m_output[2], m_output[3], m_output[4], m_output[5], m_output[6], m_output[7]);
-}
-
-/***** Port 8002 *****
-
- - bits -
- 7654 3210
- ---- ---x CANCEL lamp.
- ---- --x- HOLD3 lamp.
- ---- -x-- Sound component #3.
- ---- x--- Unknown.
- ---x ---- Unknown.
- xxx- ---- Unknown.
-*/
-
-WRITE8_MEMBER(mgames_state::outport2_w)
-{
- m_lamps[2] = BIT(data, 0); /* Lamp 3 - CANCEL */
- m_lamps[6] = BIT(data, 1); /* Lamp 7 - HOLD 3 */
-
- m_output[2] = data;
- popmessage("outport2 : %02X %02X %02X %02X %02X %02X %02X %02X", m_output[0], m_output[1], m_output[2], m_output[3], m_output[4], m_output[5], m_output[6], m_output[7]);
-}
-
-/***** Port 8003 *****
-
- - bits -
- 7654 3210
- ---- ---x Unknown lamp.
- ---- --x- HOLD4 lamp.
- ---- -x-- Sound trigger.
- ---- x--- Unknown.
- ---x ---- Unknown.
- xxx- ---- Unknown.
-*/
-
-WRITE8_MEMBER(mgames_state::outport3_w)
-{
- m_lamps[3] = BIT(data, 0); /* Lamp 4 - STAND */
- m_lamps[7] = BIT(data, 1); /* Lamp 8 - HOLD 4 */
-
- m_output[3] = data;
- popmessage("outport3 : %02X %02X %02X %02X %02X %02X %02X %02X", m_output[0], m_output[1], m_output[2], m_output[3], m_output[4], m_output[5], m_output[6], m_output[7]);
-}
-
-/***** Port 8004 *****
-
- - bits -
- 7654 3210
- ---- ---x Unknown.
- ---- --x- HOLD5 lamp.
- ---- -x-- Unknown.
- ---- x--- Unknown.
- ---x ---- Unknown.
- xxx- ---- Unknown.
-*/
-
-WRITE8_MEMBER(mgames_state::outport4_w)
-{
- m_lamps[8] = BIT(data, 1); /* Lamp 9 - HOLD 5 */
-
- m_output[4] = data;
- popmessage("outport4 : %02X %02X %02X %02X %02X %02X %02X %02X", m_output[0], m_output[1], m_output[2], m_output[3], m_output[4], m_output[5], m_output[6], m_output[7]);
-}
-
-/***** Port 8005 *****
-
- - bits -
- 7654 3210
- ---- ---x Unknown.
- ---- --x- Unknown.
- ---- -x-- Unknown.
- ---- x--- Unknown.
- ---x ---- Unknown.
- xxx- ---- Unknown.
-*/
-
-WRITE8_MEMBER(mgames_state::outport5_w)
-{
- m_output[5] = data;
- popmessage("outport5 : %02X %02X %02X %02X %02X %02X %02X %02X", m_output[0], m_output[1], m_output[2], m_output[3], m_output[4], m_output[5], m_output[6], m_output[7]);
-}
-
-/***** Port 8006 *****
-
- - bits -
- 7654 3210
- ---- ---x Unknown.
- ---- --x- Payout pulse.
- ---- -x-- Unknown.
- ---- x--- Unknown.
- ---x ---- Unknown.
- xxx- ---- Unknown.
-*/
-
-WRITE8_MEMBER(mgames_state::outport6_w)
-{
- machine().bookkeeping().coin_counter_w(1, data & 0x02); /* Payout pulse */
-
- m_output[6] = data;
- popmessage("outport6 : %02X %02X %02X %02X %02X %02X %02X %02X", m_output[0], m_output[1], m_output[2], m_output[3], m_output[4], m_output[5], m_output[6], m_output[7]);
-}
-
-/***** Port 8007 *****
-
- - bits -
- 7654 3210
- ---- ---x Unknown.
- ---- --x- Coin pulse.
- ---- -x-- Unknown.
- ---- x--- Unknown.
- ---x ---- Unknown.
- xxx- ---- Unknown.
-*/
-
-WRITE8_MEMBER(mgames_state::outport7_w)
-{
- machine().bookkeeping().coin_counter_w(0, data & 0x02); /* Coin pulse */
-
- m_output[7] = data;
- popmessage("outport7 : %02X %02X %02X %02X %02X %02X %02X %02X", m_output[0], m_output[1], m_output[2], m_output[3], m_output[4], m_output[5], m_output[6], m_output[7]);
-}
-
-
-/******** Discrete Sound ********
-
- There are 3 components plus a trigger:
-
- Component #1 = $8000, bit2.
- Component #2 = $8001, bit2.
- Component #3 = $8002, bit2.
-
- Trigger = $8003, bit2.
-
- All bits are inverted.
-
-
- Sound | 8000 | 8001 | 8002 | 8003
- ------+------+------+------+-----
- 01 | bit2 | bit2 | bit2 | bit2
- 02 | ---- | bit2 | bit2 | bit2
- 03 | bit2 | ---- | bit2 | bit2
- 04 | bit2 | bit2 | ---- | bit2
- 05 | ---- | ---- | ---- | bit2
-
-
- We're tracing the discrete circuitry...
-
-*/
-
-void mgames_state::main_map(address_map &map)
-{
- map(0x0000, 0x2fff).rom();
-// map(0x0158, 0x0158).w(FUNC(mgames_state::muxed_w));
- map(0x3800, 0x38ff).ram().share("nvram"); /* NVRAM = 2x SCM5101E */
- map(0x4000, 0x47ff).ram().share("video"); /* 4x MM2114N-3 */
- map(0x8000, 0x8000).portr("SW1");
- map(0x8001, 0x8001).r(FUNC(mgames_state::mixport_r)); /* DIP switch bank 2 + a sort of watchdog */
- map(0x8002, 0x8002).portr("IN1");
- map(0x8003, 0x8003).portr("IN2");
- map(0x8000, 0x8000).w(FUNC(mgames_state::outport0_w));
- map(0x8001, 0x8001).w(FUNC(mgames_state::outport1_w));
- map(0x8002, 0x8002).w(FUNC(mgames_state::outport2_w));
- map(0x8003, 0x8003).w(FUNC(mgames_state::outport3_w));
- map(0x8004, 0x8004).w(FUNC(mgames_state::outport4_w));
- map(0x8005, 0x8005).w(FUNC(mgames_state::outport5_w));
- map(0x8006, 0x8006).w(FUNC(mgames_state::outport6_w));
- map(0x8007, 0x8007).w(FUNC(mgames_state::outport7_w));
-}
-
-
-static INPUT_PORTS_START( mgames )
- PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BET )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_NAME("Cancel Discards")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Stand (Hold all Cards)")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Discard 1")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Discard 2")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Discard 3")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Discard 4")
-
- PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Discard 5")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats")
- 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_COIN2 ) PORT_IMPULSE(2)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("SW1")
- PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
- PORT_DIPSETTING( 0x00, "20 Coins/1 Credit" )
- PORT_DIPSETTING( 0x01, "10 Coins/1 Credit" )
- PORT_DIPSETTING( 0x02, DEF_STR( 8C_1C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 5C_1C ) )
- PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x05, "5 Coins/2 Credits" )
- PORT_DIPSETTING( 0x06, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) // Yes, again...
- PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x0d, DEF_STR( 2C_5C ) )
- PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0a, DEF_STR( 1C_8C ) )
- PORT_DIPSETTING( 0x09, "1 Coin/10 Credits" )
- PORT_DIPSETTING( 0x08, "1 Coin/20 Credits" )
- PORT_DIPNAME( 0x30, 0x30, "Game Select" )
- PORT_DIPSETTING( 0x00, "The White Knight" )
- PORT_DIPSETTING( 0x10, "Wild Bulls" )
- PORT_DIPSETTING( 0x20, "Pharaohs" )
- PORT_DIPSETTING( 0x30, "The Frog Pond" )
- PORT_DIPNAME( 0xc0, 0xc0, "Maximun Bet" )
- PORT_DIPSETTING( 0x40, "1" )
- PORT_DIPSETTING( 0xc0, "10" )
- PORT_DIPSETTING( 0x80, "20" )
- PORT_DIPSETTING( 0x00, "50" )
-
- PORT_START("SW2")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) /* bit1 connected to a signal heartbeat */
- PORT_DIPNAME( 0x1c, 0x0c, "Main Percentage" )
- PORT_DIPSETTING( 0x18, "75%" )
- PORT_DIPSETTING( 0x14, "80%" )
- PORT_DIPSETTING( 0x00, "85%" )
- PORT_DIPSETTING( 0x0c, "90%" )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
-INPUT_PORTS_END
-
-
-static const gfx_layout gfx_16x16x1 =
-{
- 16,16,
- RGN_FRAC(1,1),
- 1,
- { 0 },
- { STEP16(0,1) },
- { STEP16(0,16) },
- 16*16
-};
-
-static GFXDECODE_START( gfx_mgames )
- GFXDECODE_ENTRY( "gfx1", 0, gfx_16x16x1, 0, 64 )
-GFXDECODE_END
-
-
-void mgames_state::mgames(machine_config &config)
-{
- /* basic machine hardware */
- Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3 MHz? */
- m_maincpu->set_addrmap(AS_PROGRAM, &mgames_state::main_map);
- m_maincpu->set_vblank_int("screen", FUNC(mgames_state::irq0_line_hold));
-
- NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-
- /* video hardware */
- 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(512, 256);
- screen.set_visarea(0, 512-1, 0, 256-1);
- screen.set_screen_update(FUNC(mgames_state::screen_update_mgames));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_mgames);
- PALETTE(config, m_palette, FUNC(mgames_state::mgames_palette), 128, 64);
-
- /* sound hardware */
- // to do...
-}
-
-
-ROM_START( mgames )
- ROM_REGION( 0x3000, "maincpu", 0 )
- ROM_LOAD( "u13_mlt10_mk2716j.bin", 0x0000, 0x0800, CRC(ce2da863) SHA1(ddb921ac2fdd965138a91757843d3035144a7007) )
- ROM_LOAD( "u14_mlt11_mk2716j.bin", 0x0800, 0x0800, CRC(1382d166) SHA1(a8e7339f94d65b9540a8c16190a28ff0af48ccb4) )
- ROM_LOAD( "u15_mlt12_mk2716j.bin", 0x1000, 0x0800, CRC(eb12716c) SHA1(1589cb0aa180a3bfa5cb3da200b71f77c2191272) )
- ROM_LOAD( "u16_mlt13_mk2716j.bin", 0x1800, 0x0800, CRC(e2d80ff0) SHA1(f8aaa513f57da458ca89f999e30ea6b2d2ef41d3) )
- ROM_LOAD( "u17_mlt14_mk2716j.bin", 0x2000, 0x0800, CRC(36efcdf1) SHA1(d6fdc6abb1dbb5f812dc1c1ecb8d369bfcbf2b8a) )
- ROM_LOAD( "u18_mlt15_mk2716j.bin", 0x2800, 0x0800, CRC(7701c7df) SHA1(abf19f75367f926e49031e2fb4021172ebf176e1) )
-
- ROM_REGION( 0x2000, "gfx1", 0 )
- ROM_LOAD( "u68_cgm0_mk2716j.bin", 0x0000, 0x0800, CRC(3e4148e3) SHA1(bc5d173cc6ff17e0a7f06d36790e20d254be0377) )
- ROM_LOAD( "u67_cgm1_mk2716j.bin", 0x0800, 0x0800, CRC(c66c30ed) SHA1(9fb8fc669da37ff2e0379b023349ed314c8dcba4) )
- ROM_LOAD( "u66_cgm2_mk2716j.bin", 0x1000, 0x0800, CRC(3b6b98d3) SHA1(9fc1d9d61d67ad696750c21ef9a19968ddb0a9e1) )
- ROM_LOAD( "u65_cgm3_mk2716j.bin", 0x1800, 0x0800, CRC(d61ae9d1) SHA1(219123518999fc925397db4f442ac444dfddffbe) )
-ROM_END
-
-
-/*************************
-* Game Drivers *
-*************************/
-
-/* YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS... LAYOUT */
-GAMEL( 1981, mgames, 0, mgames, mgames, mgames_state, empty_init, ROT0, "Merit", "Match Games", MACHINE_WRONG_COLORS | MACHINE_NO_SOUND, layout_mgames )