summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Roberto Fresca <robbie@robertofresca.com>2023-11-24 18:40:45 +0100
committer Roberto Fresca <robbie@robertofresca.com>2023-11-24 18:40:45 +0100
commit03f46758ce69544d86be27772e996aa833eaa5fa (patch)
tree4311f4fcd96490ffdf9e0298a00656768894f7a8 /src
parent706cc60b159b337545748c0abe0545b447037c0a (diff)
Taito O System: Added clickable control panel with button lamps to Eibise.
Systems promoted to working --------------------------- Parent Jack (Japan) [Tomasz Slanina, Angelo Salese, Roberto Fresca, Grull Osgo] Eibise (Japan) [Tomasz Slanina, Angelo Salese, Roberto Fresca, Grull Osgo]
Diffstat (limited to 'src')
-rw-r--r--src/mame/layout/eibise.lay225
-rw-r--r--src/mame/taito/taito_o.cpp24
2 files changed, 237 insertions, 12 deletions
diff --git a/src/mame/layout/eibise.lay b/src/mame/layout/eibise.lay
new file mode 100644
index 00000000000..1061890cd6d
--- /dev/null
+++ b/src/mame/layout/eibise.lay
@@ -0,0 +1,225 @@
+<?xml version="1.0"?>
+<!--
+license:CC0-1.0
+copyright-holders: Roberto Fresca, Grull Osgo
+
+**********************************************
+
+ Eibise control panel
+
+ May or may not match arrangement/colour
+ of real control panel
+
+**********************************************
+-->
+
+<mamelayout version="2">
+
+<!-- define button-lamps -->
+
+ <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.15" blue="0.0" />
+ </rect>
+ <text string="START">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.3" width="1" height="0.4" />
+ </text>
+ </element>
+
+ <element name="maxbet" defstate="0">
+ <rect state="1">
+ <color red="1.0" green="0.0" blue="1.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.15" green="0.0" blue="0.15" />
+ </rect>
+ <text string="MAX BET">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.3" width="1" height="0.4" />
+ </text>
+ </element>
+
+ <element name="bet" defstate="0">
+ <rect state="1">
+ <color red="1.0" green="0.0" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.2" green="0.0" blue="0.0" />
+ </rect>
+ <text string="BET">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.3" width="1" height="0.4" />
+ </text>
+ </element>
+
+
+ <element name="dup" defstate="0">
+ <rect state="1">
+ <color red="1.0" green="0.5" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.15" green="0.075" blue="0.0" />
+ </rect>
+ <text string="DOUBLE">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.3" width="1" height="0.4" />
+ </text>
+ </element>
+
+ <element name="take" defstate="0">
+ <rect state="1">
+ <color red="1.0" green="0.5" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.15" green="0.075" blue="0.0" />
+ </rect>
+ <text string="TAKE">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.1" width="1" height="0.4" />
+ </text>
+ <text string="PAYOUT">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.5" width="1" height="0.4" />
+ </text>
+ </element>
+
+
+
+<!-- define basic elements -->
+
+ <element name="cpanel">
+ <rect>
+ <color red="0.0" green="0.0" blue="0.0" />
+ </rect>
+ </element>
+
+ <element name="bet_b" defstate="0">
+ <rect state="1">
+ <color red="0.7" green="0.0" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.15" green="0.0" blue="0.0" />
+ </rect>
+ </element>
+
+ <element name="dup_b" defstate="0">
+ <rect state="1">
+ <color red="0.7" green="0.35" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.1" green="0.05" 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.1" blue="0.0" />
+ </rect>
+ </element>
+
+ <element name="maxbet_b" defstate="0">
+ <rect state="1">
+ <color red="0.7" green="0.0" blue="0.7" />
+ </rect>
+ <rect state="0">
+ <color red="0.1" green="0.0" blue="0.1" />
+ </rect>
+ </element>
+
+
+<!-- define cpanel degradee elements -->
+
+ <element name="cpanel2">
+ <rect>
+ <color red="0.15" green="0.15" blue="0.15" />
+ </rect>
+ </element>
+
+ <element name="cpanel3">
+ <rect>
+ <color red="0.10" green="0.10" blue="0.10" />
+ </rect>
+ </element>
+
+ <element name="cpanel4">
+ <rect>
+ <color red="0.05" green="0.05" blue="0.05" />
+ </rect>
+ </element>
+
+
+<!-- View Field... -->
+
+ <view name="Control Panel">
+ <screen index="0">
+ <bounds left="0" top="0" right="4" bottom="3" />
+ </screen>
+
+ <element ref="cpanel">
+ <bounds left="0" right="4" top="3" bottom="3.40" />
+ </element>
+
+ <element ref="cpanel2">
+ <bounds left="0" right="4" top="3.02" bottom="3.38" />
+ </element>
+
+ <element ref="cpanel3">
+ <bounds left="0" right="4" top="3.03" bottom="3.37" />
+ </element>
+
+ <element ref="cpanel4">
+ <bounds left="0" right="4" top="3.04" bottom="3.36" />
+ </element>
+
+ <element ref="cpanel">
+ <bounds left="0" right="4" top="3.05" bottom="3.35" />
+ </element>
+
+
+ <element name="lamp12" ref="start_b" inputtag="IN0" inputmask="0x100">
+ <bounds x="0.60" y="3.08" width="0.40" height="0.24" />
+ </element>
+ <element name="lamp12" ref="start" inputtag="IN0" inputmask="0x100">
+ <bounds x="0.62" y="3.10" width="0.36" height="0.20" />
+ </element>
+
+
+ <element name="lamp9" ref="maxbet_b" inputtag="IN0" inputmask="0x80">
+ <bounds x="1.30" y="3.08" width="0.40" height="0.24" />
+ </element>
+ <element name="lamp9" ref="maxbet" inputtag="IN0" inputmask="0x80">
+ <bounds x="1.32" y="3.10" width="0.36" height="0.20" />
+ </element>
+
+
+ <element name="lamp8" ref="bet_b" inputtag="IN0" inputmask="0x40">
+ <bounds x="1.80" y="3.08" width="0.40" height="0.24" />
+ </element>
+ <element name="lamp8" ref="bet" inputtag="IN0" inputmask="0x40">
+ <bounds x="1.82" y="3.10" width="0.36" height="0.20" />
+ </element>
+
+
+ <element name="lamp10" ref="dup_b" inputtag="IN0" inputmask="0x200">
+ <bounds x="2.50" y="3.08" width="0.40" height="0.24" />
+ </element>
+ <element name="lamp10" ref="dup" inputtag="IN0" inputmask="0x200">
+ <bounds x="2.52" y="3.10" width="0.36" height="0.20" />
+ </element>
+
+ <element name="lamp13" ref="dup_b" inputtag="IN0" inputmask="0x20">
+ <bounds x="3.00" y="3.08" width="0.40" height="0.24" />
+ </element>
+ <element name="lamp13" ref="take" inputtag="IN0" inputmask="0x20">
+ <bounds x="3.02" y="3.10" width="0.36" height="0.20" />
+ </element>
+
+ </view>
+</mamelayout>
diff --git a/src/mame/taito/taito_o.cpp b/src/mame/taito/taito_o.cpp
index 0efb9b1c40d..57aa7dfd22c 100644
--- a/src/mame/taito/taito_o.cpp
+++ b/src/mame/taito/taito_o.cpp
@@ -62,6 +62,7 @@ Notes:
#include "speaker.h"
#include "parentj.lh"
+#include "eibise.lh"
namespace {
@@ -219,10 +220,9 @@ Bit 14 : paid lamp? (one short pulse after all is paid)
*/
- for (u8 i = 0; i < 16; i++)
-// m_lamps[i + 16] = BIT(data, i);
- m_lamps[i] = BIT(data, i);
-// logerror("Port b:lamps: data:%04x\n", data);
+ for (u8 i = 0; i < 16; i++)
+ m_lamps[i] = BIT(data, i);
+// logerror("Port b:lamps: data:%04x\n", data);
}
@@ -240,6 +240,7 @@ void taitoo_state::prg_map(address_map &map)
map(0x500800, 0x500fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
}
+
INPUT_CHANGED_MEMBER(taitoo_state::all_clear_cb)
{
if (oldval && !newval)
@@ -247,7 +248,6 @@ INPUT_CHANGED_MEMBER(taitoo_state::all_clear_cb)
}
-
static INPUT_PORTS_START( parentj )
PORT_START("COIN")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_WRITE_LINE_DEVICE_MEMBER("opto1", taitoio_opto_device, coin_sense_w)
@@ -269,12 +269,12 @@ static INPUT_PORTS_START( parentj )
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Init NVRAM") PORT_CODE(KEYCODE_7) PORT_CHANGED_MEMBER(DEVICE_SELF, taitoo_state, all_clear_cb, 0)
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Reset Key") PORT_CODE(KEYCODE_R)
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Last Key") PORT_CODE(KEYCODE_8)
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Meter Key") // PORT_TOGGLE
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Meter Key")
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("opto1", taitoio_opto_device, opto_h_r)
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("opto1", taitoio_opto_device, opto_l_r)
PORT_START("IN1")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hopper Over") // Hopper overload sensor to activate diverter coil
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hopper Over") // hopper overload sensor to activate diverter coil
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("opto2", taitoio_opto_device, opto_h_r)
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("opto2", taitoio_opto_device, opto_l_r)
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("All Clear SW")
@@ -337,12 +337,12 @@ static INPUT_PORTS_START( eibise )
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Reset Key") PORT_CODE(KEYCODE_R)
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Last Key") PORT_CODE(KEYCODE_8)
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Meter Key") // PORT_TOGGLE
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Meter Key")
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("opto1", taitoio_opto_device, opto_h_r)
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("opto1", taitoio_opto_device, opto_l_r)
PORT_START("IN1")
- PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hopper Over") // Hopper overload sensor to activate diverter coil
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hopper Over") // hopper overload sensor to activate diverter coil
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("opto2", taitoio_opto_device, opto_h_r)
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("opto2", taitoio_opto_device, opto_l_r)
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("All Clear SW")
@@ -512,6 +512,6 @@ ROM_END
} // anonymous namespace
-// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS LAYOUT
-GAMEL( 1989, parentj, 0, taitoo, parentj, taitoo_state, empty_init, ROT0, "Taito", "Parent Jack (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_parentj )
-GAME( 1990, eibise, 0, taitoo, eibise, taitoo_state, empty_init, ROT0, "Taito", "Eibise (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS LAYOUT
+GAMEL( 1989, parentj, 0, taitoo, parentj, taitoo_state, empty_init, ROT0, "Taito", "Parent Jack (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_parentj )
+GAMEL( 1990, eibise, 0, taitoo, eibise, taitoo_state, empty_init, ROT0, "Taito", "Eibise (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_eibise )