luckgrln.cpp: add dips and layout for 7smash, promoted to working [David Haywood]

This commit is contained in:
Ivan Vangelista 2017-04-29 08:25:23 +02:00
parent 6d3e2f92ae
commit 3451dd229e
2 changed files with 181 additions and 101 deletions

View File

@ -71,7 +71,7 @@
Other notes
Has some optocouplers, high voltage drivers, and what looks like additional
I/O conenctors.
I/O connectors.
Reset switch cuts power supply going to Video/Work RAM.
@ -86,7 +86,7 @@
#include "speaker.h"
#include "luckgrln.lh"
#include "7smash.lh"
class luckgrln_state : public driver_device
{
@ -757,23 +757,23 @@ static INPUT_PORTS_START( luckgrln )
PORT_START("DSW3")
PORT_DIPNAME( 0x07, 0x04, "Key In" )
PORT_DIPSETTING( 0x07, "1 Pulse / 5 Credits" )
PORT_DIPSETTING( 0x06, "1 Pulse / 10 Credits" )
PORT_DIPSETTING( 0x05, "1 Pulse / 50 Credits" )
PORT_DIPSETTING( 0x04, "1 Pulse / 100 Credits" )
PORT_DIPSETTING( 0x03, "1 Pulse / 200 Credits" )
PORT_DIPSETTING( 0x02, "1 Pulse / 300 Credits" )
PORT_DIPSETTING( 0x01, "1 Pulse / 500 Credits" )
PORT_DIPSETTING( 0x00, "1 Pulse / 1000 Credits" )
PORT_DIPSETTING( 0x07, "1 Pulse/5 Credits" )
PORT_DIPSETTING( 0x06, "1 Pulse/10 Credits" )
PORT_DIPSETTING( 0x05, "1 Pulse/50 Credits" )
PORT_DIPSETTING( 0x04, "1 Pulse/100 Credits" )
PORT_DIPSETTING( 0x03, "1 Pulse/200 Credits" )
PORT_DIPSETTING( 0x02, "1 Pulse/300 Credits" )
PORT_DIPSETTING( 0x01, "1 Pulse/500 Credits" )
PORT_DIPSETTING( 0x00, "1 Pulse/1000 Credits" )
PORT_DIPNAME( 0x38, 0x10, DEF_STR( Coin_A ) )
PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x28, DEF_STR( 1C_4C ) )
PORT_DIPSETTING( 0x20, DEF_STR( 1C_5C ) )
PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) )
PORT_DIPSETTING( 0x10, "1 Coin / 10 Credits" )
PORT_DIPSETTING( 0x08, "1 Coin / 25 Credits" )
PORT_DIPSETTING( 0x00, "1 Coin / 50 Credits" )
PORT_DIPSETTING( 0x10, "1 Coin/10 Credits" )
PORT_DIPSETTING( 0x08, "1 Coin/25 Credits" )
PORT_DIPSETTING( 0x00, "1 Coin/50 Credits" )
PORT_DIPNAME( 0x40, 0x40, "DSW3-40" )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
@ -783,9 +783,9 @@ static INPUT_PORTS_START( luckgrln )
PORT_START("DSW4")
PORT_DIPNAME( 0x0f, 0x04, "Coin C" )
PORT_DIPSETTING( 0x0f, "10 Coins / 1 Credit" )
PORT_DIPSETTING( 0x0f, "10 Coins/1 Credit" )
PORT_DIPSETTING( 0x0e, DEF_STR( 5C_1C ) )
PORT_DIPSETTING( 0x0d, "5 Coins / 2 Credits" )
PORT_DIPSETTING( 0x0d, "5 Coins/2 Credits" )
PORT_DIPSETTING( 0x0c, DEF_STR( 4C_1C ) )
PORT_DIPSETTING( 0x0b, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x0a, DEF_STR( 2C_1C ) )
@ -794,20 +794,20 @@ static INPUT_PORTS_START( luckgrln )
PORT_DIPSETTING( 0x07, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x06, DEF_STR( 1C_3C ) )
PORT_DIPSETTING( 0x05, DEF_STR( 1C_5C ) )
PORT_DIPSETTING( 0x04, "1 Coin / 10 Credits" )
PORT_DIPSETTING( 0x03, "1 Coin / 20 Credits" )
PORT_DIPSETTING( 0x02, "1 Coin / 25 Credits" )
PORT_DIPSETTING( 0x01, "1 Coin / 50 Credits" )
PORT_DIPSETTING( 0x00, "1 Coin / 100 Credits" )
PORT_DIPSETTING( 0x04, "1 Coin/10 Credits" )
PORT_DIPSETTING( 0x03, "1 Coin/20 Credits" )
PORT_DIPSETTING( 0x02, "1 Coin/25 Credits" )
PORT_DIPSETTING( 0x01, "1 Coin/50 Credits" )
PORT_DIPSETTING( 0x00, "1 Coin/100 Credits" )
PORT_DIPNAME( 0x70, 0x10, DEF_STR( Coin_B ) )
PORT_DIPSETTING( 0x70, "10 Coins / 1 Credit" )
PORT_DIPSETTING( 0x70, "10 Coins/1 Credit" )
PORT_DIPSETTING( 0x60, DEF_STR( 9C_1C ) )
PORT_DIPSETTING( 0x50, DEF_STR( 6C_1C ) )
PORT_DIPSETTING( 0x40, DEF_STR( 5C_1C ) )
PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x00, "1 Coin / 200 Credits" )
PORT_DIPSETTING( 0x00, "1 Coin/200 Credits" )
PORT_DIPNAME( 0x80, 0x80, "DSW4-80" )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
@ -838,96 +838,96 @@ static INPUT_PORTS_START( luckgrln )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
static INPUT_PORTS_START( _7smash )
PORT_START("DSW1")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_DIPNAME( 0x01, 0x01, "Reel Speed" )
PORT_DIPSETTING( 0x01, DEF_STR( High ) )
PORT_DIPSETTING( 0x00, DEF_STR( Low ) )
PORT_DIPNAME( 0x02, 0x02, "Renchan Pattern" )
PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
PORT_DIPNAME( 0x0c, 0x0c, "Key In Value" )
PORT_DIPSETTING( 0x00, "200" )
PORT_DIPSETTING( 0x04, "100" )
PORT_DIPSETTING( 0x08, "50" )
PORT_DIPSETTING( 0x0c, "10" )
PORT_DIPNAME( 0x70, 0x60, "Percentage" )
PORT_DIPSETTING( 0x00, "-- (Invalid 1)" )
PORT_DIPSETTING( 0x10, "-- (Invalid 2)" )
PORT_DIPSETTING( 0x20, "-- (Invalid 3)" )
PORT_DIPSETTING( 0x30, "80%" )
PORT_DIPSETTING( 0x40, "85%" )
PORT_DIPSETTING( 0x50, "90%" )
PORT_DIPSETTING( 0x60, "95%" )
PORT_DIPSETTING( 0x70, "105%" )
PORT_DIPNAME( 0x80, 0x80, "Reset Mode" )
PORT_DIPSETTING( 0x80, "Auto" )
PORT_DIPSETTING( 0x00, "Manual" )
PORT_START("DSW2")
PORT_DIPNAME( 0x01, 0x01, "DSW2" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
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_DIPNAME( 0x03, 0x03, "Payout Mode" )
PORT_DIPSETTING( 0x00, "0" )
PORT_DIPSETTING( 0x01, "1" )
PORT_DIPSETTING( 0x02, "2" )
PORT_DIPSETTING( 0x03, "3" )
PORT_DIPNAME( 0x04, 0x04, "Coin Sw Active" )
PORT_DIPSETTING( 0x04, DEF_STR( Low ) )
PORT_DIPSETTING( 0x00, DEF_STR( High ) )
PORT_DIPNAME( 0x18, 0x00, "Hopper Limit" )
PORT_DIPSETTING( 0x00, "Unlimited" )
PORT_DIPSETTING( 0x08, "1000" )
PORT_DIPSETTING( 0x10, "500" )
PORT_DIPSETTING( 0x18, "300" )
PORT_DIPNAME( 0x60, 0x60, "Panel Type" )
PORT_DIPSETTING( 0x00, "D" )
PORT_DIPSETTING( 0x20, "C" )
PORT_DIPSETTING( 0x40, "B" )
PORT_DIPSETTING( 0x60, "A" ) // inputs and layout are for this Panel Type only, ToDo: expand with conditional inputs
PORT_DIPNAME( 0x80, 0x80, "Alt. Test" )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSW3")
PORT_DIPNAME( 0x01, 0x01, "DSW3" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
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 ) )
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )
PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) )
PORT_DIPSETTING( 0x0c, "10 Coins/1 Credit" )
PORT_DIPSETTING( 0x08, DEF_STR( 5C_1C ) )
PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
PORT_DIPNAME( 0xf0, 0x00, "Coin C" )
PORT_DIPSETTING( 0x00, "1 Coin/200 Credits" )
PORT_DIPSETTING( 0x10, "1 Coin/100 Credits" )
PORT_DIPSETTING( 0x20, "1 Coin/50 Credits" )
PORT_DIPSETTING( 0x30, "1 Coin/25 Credits" )
PORT_DIPSETTING( 0x40, "1 Coin/20 Credits" )
PORT_DIPSETTING( 0x50, "1 Coin/10 Credits" )
PORT_DIPSETTING( 0x60, DEF_STR( 1C_5C ) )
PORT_DIPSETTING( 0x70, DEF_STR( 1C_4C ) )
PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x90, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0xa0, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0xb0, DEF_STR( 4C_1C ) )
PORT_DIPSETTING( 0xc0, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0xd0, "5 Coins/2 Credits" )
PORT_DIPSETTING( 0xe0, DEF_STR( 5C_1C ) )
PORT_DIPSETTING( 0xf0, "10 Coins/1 Credit" )
PORT_START("DSW4")
PORT_DIPNAME( 0x01, 0x01, "DSW4" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
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 ) )
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("DSW5")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SLOT_STOP3 ) PORT_NAME("Slot 3 / Odds")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SLOT_STOP2 ) PORT_NAME("Slot 2 / Bet")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SLOT_STOP1 ) PORT_NAME("Slot 1")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SLOT_STOP3 ) PORT_NAME("Stop 3 / Odds")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SLOT_STOP2 ) PORT_NAME("Stop 2 / Bet")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SLOT_STOP1 ) PORT_NAME("Stop 1")
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("IN1")
@ -1094,6 +1094,6 @@ ROM_END
* Game Drivers *
**********************************************
YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */
GAMEL( 1991, luckgrln, 0, luckgrln, luckgrln, luckgrln_state, luckgrln, ROT0, "Wing Co., Ltd.", "Lucky Girl (newer Z180 based hardware)", MACHINE_NO_SOUND, layout_luckgrln )
GAMEL( 1993, 7smash, 0, _7smash, _7smash, driver_device, 0, ROT0, "Sovic", "7 Smash", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_NO_SOUND, layout_luckgrln )
YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */
GAMEL( 1991, luckgrln, 0, luckgrln, luckgrln, luckgrln_state, luckgrln, ROT0, "Wing Co., Ltd.", "Lucky Girl (newer Z180 based hardware)", MACHINE_NO_SOUND, layout_luckgrln )
GAMEL( 1993, 7smash, 0, _7smash, _7smash, driver_device, 0, ROT0, "Sovic", "7 Smash", MACHINE_NO_SOUND, layout_7smash )

View File

@ -0,0 +1,80 @@
<?xml version="1.0"?>
<mamelayout version="2">
<element name="stop3" defstate="0">
<rect state="1">
<color red="1.0" green="0.0" blue="0.0" />
</rect>
<rect state="0">
<color red="0.3" green="0.0" blue="0.0" />
</rect>
<text string="STOP 3 / ODDS">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.2" width="1" height="0.6" />
</text>
</element>
<element name="stop2" defstate="0">
<rect state="1">
<color red="1.0" green="0.0" blue="0.0" />
</rect>
<rect state="0">
<color red="0.3" green="0.0" blue="0.0" />
</rect>
<text string="STOP 2 / BET">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.2" width="1" height="0.6" />
</text>
</element>
<element name="stop1" defstate="0">
<rect state="1">
<color red="1.0" green="0.0" blue="0.0" />
</rect>
<rect state="0">
<color red="0.3" green="0.0" blue="0.0" />
</rect>
<text string="STOP 1">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.2" width="1" height="0.6" />
</text>
</element>
<element name="start" defstate="0">
<rect state="1">
<color red="0.0" green="1.0" blue="0.0" />
</rect>
<rect state="0">
<color red="0.0" green="0.3" blue="0.0" />
</rect>
<text string="START / STOP">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.2" width="1" height="0.6" />
</text>
</element>
<!-- ToDo: Two of the Dipswitches enable an alt control schemes where Odds and Bet use
different buttons and lamps, but this is not the default and is supported neither
here nor in the driver -->
<view name="Button Lamps">
<screen index="0">
<bounds left="0" top="0" right="4" bottom="3" />
</screen>
<bezel name="lamp0" element="start" inputtag="IN0" inputmask="0x01">
<bounds x="0" y="3.02" width="0.55" height="0.24" />
</bezel>
<bezel name="lamp6" element="stop1" inputtag="IN0" inputmask="0x08">
<bounds x="0.65" y="3.02" width="0.55" height="0.24" />
</bezel>
<bezel name="lamp4" element="stop2" inputtag="IN0" inputmask="0x04">
<bounds x="1.30" y="3.02" width="0.55" height="0.24" />
</bezel>
<bezel name="lamp2" element="stop3" inputtag="IN0" inputmask="0x02">
<bounds x="1.95" y="3.02" width="0.55" height="0.24" />
</bezel>
</view>
</mamelayout>