magicard.cpp: Added button-lamps layout to jjokeri.

This commit is contained in:
Roberto Fresca 2023-12-23 02:53:17 +01:00
parent 81650bcbe0
commit ba7dbf9691
2 changed files with 231 additions and 24 deletions

View File

@ -0,0 +1,192 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
copyright-holders: Roberto Fresca
**************************************************
Magic Card (impera).
Realistic clickable buttons-lamps.
**************************************************
-->
<mamelayout version="2">
<element name="hold1" 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="HOLD 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="hold2" 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="HOLD 2">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.1" width="1" height="0.4" />
</text>
<text string="LOW">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.5" width="1" height="0.4" />
</text>
</element>
<element name="hold3" 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="HOLD 3">
<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="hold4" 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="HOLD 4">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.1" width="1" height="0.4" />
</text>
<text string="HIGH">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.5" width="1" height="0.4" />
</text>
</element>
<element name="hold5" 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="HOLD 5">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.1" width="1" height="0.4" />
</text>
<text string="BET/HALF">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.5" width="1" height="0.4" />
</text>
</element>
<element name="cancel" 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.25" blue="0.0" />
</rect>
<text string="CANCEL">
<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.25" blue="0.0" />
</rect>
<text string="START">
<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="hold_b" defstate="0">
<rect state="1">
<color red="0.7" green="0.0" blue="0.0" />
</rect>
<rect state="0">
<color red="0.2" green="0.0" blue="0.0" />
</rect>
</element>
<element name="start_b" defstate="0">
<rect state="1">
<color red="0.0" green="0.7" blue="0.0" />
</rect>
<rect state="0">
<color red="0.0" green="0.15" blue="0.0" />
</rect>
</element>
<view name="Button Lamps">
<screen index="0">
<bounds left="0" top="0" right="4" bottom="3" />
</screen>
<element name="lamp1" ref="hold_b" inputtag="IN0" inputmask="0x02">
<bounds x="0.10" y="3.13" width="0.55" height="0.24" />
</element>
<element name="lamp1" ref="hold1" inputtag="IN0" inputmask="0x02">
<bounds x="0.12" y="3.15" width="0.51" height="0.20" />
</element>
<element name="lamp2" ref="hold_b" inputtag="IN1" inputmask="0x01">
<bounds x="0.75" y="3.13" width="0.55" height="0.24" />
</element>
<element name="lamp2" ref="hold2" inputtag="IN1" inputmask="0x01">
<bounds x="0.77" y="3.15" width="0.51" height="0.20" />
</element>
<element name="lamp3" ref="hold_b" inputtag="IN1" inputmask="0x02">
<bounds x="1.40" y="3.13" width="0.55" height="0.24" />
</element>
<element name="lamp3" ref="hold3" inputtag="IN1" inputmask="0x02">
<bounds x="1.42" y="3.15" width="0.51" height="0.20" />
</element>
<element name="lamp4" ref="hold_b" inputtag="IN0" inputmask="0x80">
<bounds x="2.05" y="3.13" width="0.55" height="0.24" />
</element>
<element name="lamp4" ref="hold4" inputtag="IN0" inputmask="0x80">
<bounds x="2.07" y="3.15" width="0.51" height="0.20" />
</element>
<element name="lamp5" ref="hold_b" inputtag="IN0" inputmask="0x10">
<bounds x="2.70" y="3.13" width="0.55" height="0.24" />
</element>
<element name="lamp5" ref="hold5" inputtag="IN0" inputmask="0x10">
<bounds x="2.72" y="3.15" width="0.51" height="0.20" />
</element>
<element name="lamp6" ref="start_b" inputtag="IN0" inputmask="0x04">
<bounds x="3.35" y="3.02" width="0.55" height="0.24" />
</element>
<element name="lamp6" ref="cancel" inputtag="IN0" inputmask="0x04">
<bounds x="3.37" y="3.04" width="0.51" height="0.20" />
</element>
<element name="lamp7" ref="start_b" inputtag="IN0" inputmask="0x08">
<bounds x="3.35" y="3.28" width="0.55" height="0.24" />
</element>
<element name="lamp7" ref="start" inputtag="IN0" inputmask="0x08">
<bounds x="3.37" y="3.30" width="0.51" height="0.20" />
</element>
</view>
</mamelayout>

View File

@ -199,6 +199,8 @@
#include "screen.h"
#include "speaker.h"
#include "magicard.lh"
#define CLOCK_A XTAL(30'000'000)
#define CLOCK_B XTAL(8'000'000)
#define CLOCK_C XTAL(19'660'800)
@ -222,6 +224,8 @@ public:
, m_palette(*this, "palette")
, m_scc66470(*this,"scc66470")
, m_i2cmem(*this, "sereeprom")
, m_lamps(*this, "lamp%u", 1U)
{ }
void magicard_base(machine_config &config);
@ -262,6 +266,8 @@ protected:
uint8_t m_scl_state;
private:
output_finder<8> m_lamps;
void scc66470_map(address_map &map);
std::unique_ptr<uint16_t []> m_dram;
@ -331,6 +337,7 @@ private:
void magicard_base_state::machine_start()
{
m_lamps.resolve();
m_dram = make_unique_clear<uint16_t []>(0x80000/2);
save_pointer(NAME(m_dram), 0x80000/2);
save_item(NAME(m_sda_state));
@ -438,6 +445,14 @@ void magicard_base_state::output_w(offs_t offset, uint16_t data)
// bit 13 - clear lamp
// bit 14 - hopper drive
// bit 15 - counter in
m_lamps[0] = BIT(data, 9); // Lamp 0 - HOLD 1
m_lamps[1] = BIT(data, 11); // Lamp 1 - HOLD 2
m_lamps[2] = BIT(data, 7); // Lamp 2 - HOLD 3
m_lamps[3] = BIT(data, 12); // Lamp 3 - HOLD 4
m_lamps[4] = BIT(data, 10); // Lamp 4 - HOLD 5
m_lamps[5] = BIT(data, 13); // Lamp 5 - CANCEL
m_lamps[6] = BIT(data, 8); // Lamp 6 - START
}
@ -2261,29 +2276,29 @@ ROM_END
* Game Drivers *
*********************************************/
// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS
// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS
GAME( 1994, magicard, 0, magicard, magicard, magicard_state, empty_init, ROT0, "Impera", "Magic Card (v2.01)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1994, magicrd1, 0, magicard_pic56, magicard, magicard_state, empty_init, ROT0, "Impera", "Magic Card (v1.10 14.09.94)", MACHINE_SUPPORTS_SAVE )
GAME( 1993, magicrd1a, magicrd1, magicard, magicard, magicard_state, empty_init, ROT0, "Impera", "Magic Card (v1.5 17.12.93, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1993, magicrd1b, magicrd1, magicard, magicard, magicard_state, empty_init, ROT0, "Impera", "Magic Card (v1.5 17.12.93, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1993, magicrd1c, magicrd1, magicard_pic54, magicard, magicard_state, empty_init, ROT0, "Impera", "Magic Card (v1.2 200/93, set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1993, magicrd1d, magicrd1, magicard, magicard, magicard_state, empty_init, ROT0, "Impera", "Magic Card (v1.2 200/93, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1994, magicrde, 0, hotslots_pic54, magicrde, hotslots_state, empty_init, ROT0, "Impera", "Magic Card Export 94 (v2.11a, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1994, magicrdea, magicrde, hotslots_pic54, magicrde, hotslots_state, empty_init, ROT0, "Impera", "Magic Card Export 94 (v2.11a, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1994, magicrdeb, magicrde, hotslots, magicrde, hotslots_state, empty_init, ROT0, "Impera", "Magic Card Export 94 (V2.11a, set 3)", MACHINE_SUPPORTS_SAVE )
GAME( 1994, magicrdec, magicrde, hotslots, magicrde, hotslots_state, empty_init, ROT0, "Impera", "Magic Card Export 94 (v2.09a)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1998, magicrdj, 0, hotslots, magicrde, hotslots_state, empty_init, ROT0, "Impera", "Magic Card III Jackpot (V4.01 6/98)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1998, magicrdja, magicrdj, hotslots, magicrde, hotslots_state, empty_init, ROT0, "Impera", "Magic Card III Jackpot (V4.01 7/98)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 2001, magicle, 0, magicle, hotslots, hotslots_state, empty_init, ROT0, "Impera", "Magic Lotto Export (5.03)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 2002, hotslots, 0, hotslots, hotslots, hotslots_state, empty_init, ROT0, "Impera", "Hot Slots (6.00)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1999, quingo, 0, magicle, hotslots, hotslots_state, empty_init, ROT0, "Impera", "Quingo Export (5.00)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1999, belslots, 0, magicle, hotslots, hotslots_state, empty_init, ROT0, "Impera", "Bel Slots Export (5.01)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 2001, bigdeal0, 0, magicle, magicard, hotslots_state, empty_init, ROT0, "Impera", "Big Deal Belgien (5.04)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 199?, puzzleme, 0, puzzleme, puzzleme, hotslots_state, empty_init, ROT0, "Impera", "Puzzle Me!", MACHINE_SUPPORTS_SAVE )
GAME( 1991, lucky7i, 0, magicard, lucky7i, magicard_state, empty_init, ROT0, "Impera", "Lucky 7 (Impera, V04/91a, set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1993, dallaspk, 0, magicard, dallaspk, magicard_state, empty_init, ROT0, "<unknown>", "Dallas Poker", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1993, kajotcrd, 0, hotslots, magicard, hotslots_state, empty_init, ROT0, "Amatic", "Kajot Card (Version 1.01, Wien Euro)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1994, magicard, 0, magicard, magicard, magicard_state, empty_init, ROT0, "Impera", "Magic Card (v2.01)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1994, magicrd1, 0, magicard_pic56, magicard, magicard_state, empty_init, ROT0, "Impera", "Magic Card (v1.10 14.09.94)", MACHINE_SUPPORTS_SAVE )
GAME( 1993, magicrd1a, magicrd1, magicard, magicard, magicard_state, empty_init, ROT0, "Impera", "Magic Card (v1.5 17.12.93, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1993, magicrd1b, magicrd1, magicard, magicard, magicard_state, empty_init, ROT0, "Impera", "Magic Card (v1.5 17.12.93, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1993, magicrd1c, magicrd1, magicard_pic54, magicard, magicard_state, empty_init, ROT0, "Impera", "Magic Card (v1.2 200/93, set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1993, magicrd1d, magicrd1, magicard, magicard, magicard_state, empty_init, ROT0, "Impera", "Magic Card (v1.2 200/93, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1994, magicrde, 0, hotslots_pic54, magicrde, hotslots_state, empty_init, ROT0, "Impera", "Magic Card Export 94 (v2.11a, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1994, magicrdea, magicrde, hotslots_pic54, magicrde, hotslots_state, empty_init, ROT0, "Impera", "Magic Card Export 94 (v2.11a, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1994, magicrdeb, magicrde, hotslots, magicrde, hotslots_state, empty_init, ROT0, "Impera", "Magic Card Export 94 (V2.11a, set 3)", MACHINE_SUPPORTS_SAVE )
GAME( 1994, magicrdec, magicrde, hotslots, magicrde, hotslots_state, empty_init, ROT0, "Impera", "Magic Card Export 94 (v2.09a)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1998, magicrdj, 0, hotslots, magicrde, hotslots_state, empty_init, ROT0, "Impera", "Magic Card III Jackpot (V4.01 6/98)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1998, magicrdja, magicrdj, hotslots, magicrde, hotslots_state, empty_init, ROT0, "Impera", "Magic Card III Jackpot (V4.01 7/98)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 2001, magicle, 0, magicle, hotslots, hotslots_state, empty_init, ROT0, "Impera", "Magic Lotto Export (5.03)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 2002, hotslots, 0, hotslots, hotslots, hotslots_state, empty_init, ROT0, "Impera", "Hot Slots (6.00)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1999, quingo, 0, magicle, hotslots, hotslots_state, empty_init, ROT0, "Impera", "Quingo Export (5.00)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1999, belslots, 0, magicle, hotslots, hotslots_state, empty_init, ROT0, "Impera", "Bel Slots Export (5.01)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 2001, bigdeal0, 0, magicle, magicard, hotslots_state, empty_init, ROT0, "Impera", "Big Deal Belgien (5.04)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 199?, puzzleme, 0, puzzleme, puzzleme, hotslots_state, empty_init, ROT0, "Impera", "Puzzle Me!", MACHINE_SUPPORTS_SAVE )
GAME( 1991, lucky7i, 0, magicard, lucky7i, magicard_state, empty_init, ROT0, "Impera", "Lucky 7 (Impera, V04/91a, set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1993, dallaspk, 0, magicard, dallaspk, magicard_state, empty_init, ROT0, "<unknown>", "Dallas Poker", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1993, kajotcrd, 0, hotslots, magicard, hotslots_state, empty_init, ROT0, "Amatic", "Kajot Card (Version 1.01, Wien Euro)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1991, lucky7x, lucky7i, magicard, lucky7i, magicard_state, empty_init, ROT0, "Impera", "Lucky 7 (Impera, V04/91a, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1991, jjokeri, 0, magicard, jjokeri, magicard_state, empty_init, ROT0, "Impera", "Jolly Joker? (Impera, V11/90b)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAME( 1991, lucky7x, lucky7i, magicard, lucky7i, magicard_state, empty_init, ROT0, "Impera", "Lucky 7 (Impera, V04/91a, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
GAMEL( 1991, jjokeri, 0, magicard, jjokeri, magicard_state, empty_init, ROT0, "Impera", "Jolly Joker? (Impera, V11/90b)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_magicard )