microvsn: internal artwork for lcd (nw)

This commit is contained in:
hap 2020-04-13 12:45:02 +02:00
parent de72f97b90
commit 84c051119d
10 changed files with 96 additions and 88 deletions

View File

@ -14,7 +14,7 @@ license:CC0
<publisher>Fidelity Electronics</publisher>
<part name="cart" interface="fidel_scc">
<dataarea name="rom" size="0x2000">
<rom name="cb9.bin" offset="0x0000" size="0x2000" crc="421147e8" sha1="ccf62f6f218e8992baf30973fe41b35e14a1cc1a" />
<rom name="cb9.bin" offset="0x0000" size="0x2000" crc="421147e8" sha1="ccf62f6f218e8992baf30973fe41b35e14a1cc1a" /> <!-- 101-1050a01? -->
</dataarea>
</part>
</software>

View File

@ -26,7 +26,7 @@ One more game "Barrage" was announced but not released.
The "clock" feature is used to indicate MCU clock frequency
The "pla" feature is for TMS1100 output PLA type
The "paddle" feature is used to indicate whether there is paddle circuitry on the PCB
The "overlay" feature indicates screen/keypad overlay
The "butmask" feature indicates cartridge button restrict mask (active-low)
-->
<softwarelist name="microvision" description="Milton Bradley MicroVision cartridges">
@ -41,7 +41,7 @@ The "overlay" feature indicates screen/keypad overlay
<feature name="clock" value="500000" /> <!-- RC = 100pf/23.2K -->
<feature name="pla" value="1" />
<feature name="paddle" value="1" />
<feature name="overlay" value="10" />
<feature name="butmask" value="0xaaa" />
<dataarea name="rom" size="0x800"> <!-- TMS1100 MCU -->
<rom name="m34009-n1" size="0x800" crc="b1632712" sha1="515040a3bf6386590c025e12a9512c98efdd7e1e"/>
</dataarea>
@ -58,7 +58,7 @@ The "overlay" feature indicates screen/keypad overlay
<feature name="clock" value="500000" /> <!-- RC = 100pf/23.2K -->
<feature name="pla" value="0" />
<feature name="paddle" value="1" />
<feature name="overlay" value="8" />
<feature name="butmask" value="0xaaa" />
<dataarea name="rom" size="0x800"> <!-- TMS1100 MCU -->
<rom name="mp3479-n1nll_4063" size="0x800" crc="40e3327a" sha1="c1b52a081c7fe6a51c5cfe41a4d446f1f8cfe24e"/>
</dataarea>
@ -75,7 +75,7 @@ The "overlay" feature indicates screen/keypad overlay
<feature name="clock" value="500000" /> <!-- RC = 100pf/23.2K -->
<feature name="pla" value="0" />
<feature name="paddle" value="1" />
<feature name="overlay" value="1" />
<feature name="butmask" value="0xbab" />
<dataarea name="rom" size="0x800"> <!-- TMS1100 MCU, die label 1100B, MP3450A -->
<rom name="mp3450a" size="0x800" crc="fd18ea6d" sha1="30203278d7f2b0817e59bdf7e451be2d64a90f5a"/>
</dataarea>
@ -92,7 +92,7 @@ The "overlay" feature indicates screen/keypad overlay
<feature name="clock" value="500000" /> <!-- RC = 100pf/23.2K -->
<feature name="pla" value="1" />
<feature name="paddle" value="0" />
<feature name="overlay" value="3" />
<feature name="butmask" value="0x7a7" />
<dataarea name="rom" size="0x800"> <!-- TMS1100 MCU, die label 1100E, MP3475 -->
<rom name="mp3475nll_4972" size="0x800" crc="460ac30e" sha1="93ffb75b82d1f48f451e0e1158d5a8d1cd465fe5"/>
</dataarea>
@ -109,7 +109,7 @@ The "overlay" feature indicates screen/keypad overlay
<feature name="clock" value="500000" /> <!-- RC = 100pf/23.2K? (matches video recording) -->
<feature name="pla" value="1" />
<feature name="paddle" value="1" />
<feature name="overlay" value="2" />
<feature name="butmask" value="0xaaa" />
<dataarea name="rom" size="0x800"> <!-- TMS1100 MCU -->
<rom name="mp3481" size="0x800" crc="6a4cf60b" sha1="e93d848784205ab49234ad26718e04d267b776ed"/>
</dataarea>
@ -125,7 +125,7 @@ The "overlay" feature indicates screen/keypad overlay
<part name="cart" interface="microvision_cart">
<feature name="clock" value="3500000" /> <!-- LC circuit, correct? (matches video recording) -->
<feature name="paddle" value="1" />
<feature name="overlay" value="2" />
<feature name="butmask" value="0xaaa" />
<dataarea name="rom" size="0x400"> <!-- Intel 8021 MCU -->
<rom name="4971" size="0x400" crc="bdd8660b" sha1="971f9117dc809f7b9796134208b47ea34990ae71"/>
</dataarea>
@ -142,7 +142,7 @@ The "overlay" feature indicates screen/keypad overlay
<feature name="clock" value="500000" /> <!-- RC = 100pf/23.2K -->
<feature name="pla" value="1" />
<feature name="paddle" value="0" />
<feature name="overlay" value="11" />
<feature name="butmask" value="0x505" />
<dataarea name="rom" size="0x800"> <!-- TMS1100 MCU -->
<rom name="m34017-n1" size="0x800" crc="d8ba1377" sha1="a8dabd296aefc46849db2b7d2d8e0de7c77b5b38"/>
</dataarea>
@ -159,7 +159,7 @@ The "overlay" feature indicates screen/keypad overlay
<feature name="clock" value="550000" /> <!-- RC = 100pf/21.0K -->
<feature name="pla" value="0" />
<feature name="paddle" value="0" />
<feature name="overlay" value="7" />
<feature name="butmask" value="0" />
<dataarea name="rom" size="0x800"> <!-- TMS1100 MCU -->
<rom name="mp3457nll_4976" size="0x800" crc="d5dc1f7d" sha1="9e53bd7e9b718ced3bffbdd50cf9ea1547183ea3"/>
</dataarea>
@ -176,7 +176,7 @@ The "overlay" feature indicates screen/keypad overlay
<feature name="clock" value="550000" /> <!-- RC = 100pf/21.0K -->
<feature name="pla" value="0" />
<feature name="paddle" value="0" />
<feature name="overlay" value="4" />
<feature name="butmask" value="0x515" />
<dataarea name="rom" size="0x800"> <!-- TMS1100 MCU -->
<rom name="mp3454" size="0x800" crc="c7768d04" sha1="e477d49fc835649164cff5ed158ee31dcf244efc"/>
</dataarea>
@ -193,7 +193,7 @@ The "overlay" feature indicates screen/keypad overlay
<feature name="clock" value="550000" /> <!-- RC = 100pf/21.0K -->
<feature name="pla" value="0" />
<feature name="paddle" value="1" />
<feature name="overlay" value="5" />
<feature name="butmask" value="0xbab" />
<dataarea name="rom" size="0x800"> <!-- TMS1100 MCU, die label 1100E, MP3455 -->
<rom name="mp3455nll_4974" size="0x800" crc="906544ea" sha1="7ba8460369e1bb0708b0ef076342774059fd03d2"/>
</dataarea>
@ -210,7 +210,7 @@ The "overlay" feature indicates screen/keypad overlay
<feature name="clock" value="350000" /> <!-- RC = 100pf/39.4K -->
<feature name="pla" value="1" />
<feature name="paddle" value="0" />
<feature name="overlay" value="9" />
<feature name="butmask" value="0" />
<dataarea name="rom" size="0x800"> <!-- TMS1100 MCU -->
<rom name="mp3496-n1_4064" size="0x800" crc="77a8f71b" sha1="1f95ecf3b1ec6a17db92e1ae903be269aa0b47d8"/>
</dataarea>
@ -227,7 +227,7 @@ The "overlay" feature indicates screen/keypad overlay
<feature name="clock" value="500000" /> <!-- RC = 100pf/23.2K -->
<feature name="pla" value="1" />
<feature name="paddle" value="1" />
<feature name="overlay" value="12" />
<feature name="butmask" value="0xbfb" />
<dataarea name="rom" size="0x800"> <!-- TMS1100 MCU -->
<rom name="m34047-n2ll_4241" size="0x800" crc="796660e3" sha1="1b758369849cc7dea3918774244f747895607377"/>
</dataarea>
@ -244,7 +244,7 @@ The "overlay" feature indicates screen/keypad overlay
<feature name="clock" value="500000" /> <!-- RC = 100pf/23.2K -->
<feature name="pla" value="1" />
<feature name="paddle" value="0" />
<feature name="overlay" value="6" />
<feature name="butmask" value="0x555" />
<dataarea name="rom" size="0x800"> <!-- TMS1100 MCU, die label 1100E, MP3474 -->
<rom name="mp3474nll_4975" size="0x800" crc="4500c1d9" sha1="d49522dbe265e71b86488b5533d01bc9050811c9"/>
</dataarea>

View File

@ -6,6 +6,10 @@
Mephisto Mondial
Mephisto Mondial II
TODO:
- split driver into 2? they're not on the same hardware
- add mondial MM 1000 module
**************************************************************************************************/
#include "emu.h"

View File

@ -51,14 +51,13 @@ protected:
void mondial68k_mem(address_map &map);
DECLARE_WRITE32_MEMBER(lcd_s_w);
DECLARE_WRITE_LINE_MEMBER(speaker_w);
DECLARE_WRITE8_MEMBER(input_mux_w);
DECLARE_WRITE8_MEMBER(board_mux_w);
DECLARE_READ8_MEMBER(inputs_r);
TIMER_DEVICE_CALLBACK_MEMBER(refresh_leds);
required_device<cpu_device> m_maincpu;
required_device<dac_bit_interface> m_dac;
required_device<dac_1bit_device> m_dac;
required_device<sensorboard_device> m_board;
required_device<pcf2112_device> m_lcd;
required_ioport_array<4> m_inputs;
@ -104,11 +103,6 @@ WRITE32_MEMBER(mondial68k_state::lcd_s_w)
m_digits[i] = bitswap<8>((data & 0x7fffffff) >> (8 * i), 7,4,5,0,1,2,3,6);
}
WRITE_LINE_MEMBER(mondial68k_state::speaker_w)
{
m_dac->write(state);
}
WRITE8_MEMBER(mondial68k_state::board_mux_w)
{
m_board_mux = data;
@ -208,7 +202,7 @@ void mondial68k_state::mondial68k(machine_config &config)
outlatch.q_out_cb<1>().set(m_lcd, FUNC(pcf2112_device::data_w));
outlatch.q_out_cb<2>().set(m_lcd, FUNC(pcf2112_device::dlen_w));
outlatch.q_out_cb<6>().set_nop(); // another DAC input?
outlatch.q_out_cb<7>().set(FUNC(mondial68k_state::speaker_w));
outlatch.q_out_cb<7>().set(m_dac, FUNC(dac_1bit_device::write));
SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS);
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));

View File

@ -17,7 +17,6 @@
- megaiv/smondial leds are tri-color
- why are megaiv/smondial2 beeps noisy?
- add Monte Carlo IV (non-LE)
- add MM 1000 module
**************************************************************************************************/

View File

@ -15,7 +15,7 @@ games had an Intel 8021 MCU at first, but Milton Bradley switched to TMS1100.
Each game had a screen- and keypad overlay attached to it, MAME external
artwork is recommended. It's also advised to disable screen filtering,
eg. with -prescale, or on Windows simply -video gdi.
eg. with -prescale or -nofilter.
TODO:
- dump/add remaining 8021 cartridges
@ -39,6 +39,8 @@ TODO:
#include "screen.h"
#include "speaker.h"
#include "microvision.lh"
namespace {
@ -56,8 +58,7 @@ public:
m_paddle_timer(*this, "paddle_timer"),
m_inputs(*this, "COL%u", 0),
m_paddle(*this, "PADDLE"),
m_conf(*this, "CONF"),
m_overlay_out(*this, "overlay")
m_conf(*this, "CONF")
{ }
void microvision(machine_config &config);
@ -80,14 +81,13 @@ private:
required_ioport_array<3> m_inputs;
required_ioport m_paddle;
required_ioport m_conf;
output_finder<> m_overlay_out;
u32 tms1100_decode_micro(offs_t offset);
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
void apply_settings(void);
u8 m_pla_auto;
u8 m_overlay_auto;
u16 m_butmask_auto;
u16 m_button_mask;
bool m_paddle_auto;
bool m_paddle_on;
@ -115,14 +115,12 @@ private:
void microvision_state::machine_start()
{
m_overlay_out.resolve();
// register for savestates
save_item(NAME(m_r));
save_item(NAME(m_p0));
save_item(NAME(m_p2));
// don't save: m_pla_auto, m_overlay_auto, m_paddle_auto,
// don't save: m_pla_auto, m_butmask_auto, m_paddle_auto,
// m_button_mask, m_paddle_on
}
@ -204,7 +202,7 @@ DEVICE_IMAGE_LOAD_MEMBER(microvision_state::cart_load)
// set default settings
u32 clock = (size == 0x400) ? 3500000 : 500000;
m_pla_auto = 0;
m_overlay_auto = 0;
m_butmask_auto = 0xfff;
m_paddle_auto = false;
if (image.loaded_through_softlist())
@ -213,7 +211,7 @@ DEVICE_IMAGE_LOAD_MEMBER(microvision_state::cart_load)
if (sclock != 0)
clock = sclock;
m_overlay_auto = strtoul(image.get_feature("overlay"), nullptr, 0);
m_butmask_auto = ~strtoul(image.get_feature("butmask"), nullptr, 0) & 0xfff;
m_pla_auto = strtoul(image.get_feature("pla"), nullptr, 0) ? 1 : 0;
m_paddle_auto = bool(strtoul(image.get_feature("paddle"), nullptr, 0) ? 1 : 0);
}
@ -239,38 +237,8 @@ void microvision_state::apply_settings()
{
u8 conf = m_conf->read();
u8 overlay = (conf & 1) ? m_overlay_auto : 0;
m_overlay_out = overlay;
// overlay physically restricts button panel
switch (overlay)
{
case 1: case 5:
m_button_mask = 0x454;
break;
case 2: case 8: case 10:
m_button_mask = 0x555;
break;
case 3:
m_button_mask = 0x858;
break;
case 4:
m_button_mask = 0xaea;
break;
case 6:
m_button_mask = 0xaaa;
break;
case 11:
m_button_mask = 0xafa;
break;
case 12:
m_button_mask = 0x404;
break;
default:
m_button_mask = 0xfff;
break;
}
// cartridge physically restricts button panel (some glitches otherwise)
m_button_mask = (conf & 1) ? m_butmask_auto : 0xfff;
u8 pla = ((conf & 0x18) == 0x10) ? m_pla_auto : (conf >> 3 & 1);
m_tms1100->set_output_pla(microvision_output_pla[pla]);
@ -494,6 +462,7 @@ void microvision_state::microvision(machine_config &config)
m_lcd->write_cols().set(FUNC(microvision_state::lcd_output_w));
PWM_DISPLAY(config, m_lcd_pwm).set_size(16, 16);
config.set_default_layout(layout_microvision);
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
screen.set_refresh_hz(60);

View File

@ -99,7 +99,7 @@ private:
required_device_array<hlcd0538_device, 3> m_lcd;
required_device<dac_bit_interface> m_dac;
required_shared_ptr<u8> m_nvram;
required_ioport_array<7+1> m_inputs;
required_ioport_array<7+2> m_inputs;
output_finder<3, 8, 34> m_out_x;
// address maps
@ -364,11 +364,11 @@ static INPUT_PORTS_START( mark5 )
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("Mode")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_COMMA) PORT_NAME("Start Clock")
PORT_START("IN.5") // square 'd-pad' (8-way, so define joystick)
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_CODE(KEYCODE_UP) PORT_NAME("Cursor Up")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_NAME("Cursor Down")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Cursor Right")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_CODE(KEYCODE_LEFT) PORT_NAME("Cursor Left")
PORT_START("IN.5") // d-pad reads here
PORT_BIT(0x01, 0x01, IPT_CUSTOM) PORT_CONDITION("IN.8", 0x31, NOTEQUALS, 0x00)
PORT_BIT(0x02, 0x02, IPT_CUSTOM) PORT_CONDITION("IN.8", 0xc2, NOTEQUALS, 0x00)
PORT_BIT(0x04, 0x04, IPT_CUSTOM) PORT_CONDITION("IN.8", 0xa4, NOTEQUALS, 0x00)
PORT_BIT(0x08, 0x08, IPT_CUSTOM) PORT_CONDITION("IN.8", 0x58, NOTEQUALS, 0x00)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
@ -389,6 +389,16 @@ static INPUT_PORTS_START( mark5 )
PORT_CONFNAME( 0x02, 0x02, "LCD Light" )
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x02, DEF_STR( On ) )
PORT_START("IN.8") // square 'd-pad' (8-way, so define joystick)
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_CODE(KEYCODE_UP) PORT_NAME("Cursor Up")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_NAME("Cursor Down")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Cursor Right")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_CODE(KEYCODE_LEFT) PORT_NAME("Cursor Left")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) // ul
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) // ur
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) // dl
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) // dr
INPUT_PORTS_END
static INPUT_PORTS_START( mark6 )

View File

@ -0,0 +1,32 @@
<?xml version="1.0"?>
<!--
license:CC0
-->
<mamelayout version="2">
<!-- define elements -->
<element name="lcdb"><rect><color red="1" green="1" blue="1" /></rect></element>
<element name="lcdm"><rect><color red="0.75" green="0.78" blue="0.77" /></rect></element>
<element name="lcda"><rect><color red="0.3" green="0.3" blue="0.3" /></rect></element>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="0" right="18" top="0" bottom="18" />
<element ref="lcdb"><bounds x="0" y="0" width="18" height="18" /></element>
<screen index="0"><bounds x="1" y="1" width="16" height="16" /></screen>
<repeat count="17">
<param name="i" start="0.95" increment="1" />
<element ref="lcdb"><bounds x="~i~" y="0.5" width="0.1" height="17" /></element>
<element ref="lcdb"><bounds x="0.5" y="~i~" width="17" height="0.1" /></element>
</repeat>
<element ref="lcda" blend="add"><bounds x="0" y="0" width="18" height="18" /></element>
<element ref="lcdm" blend="multiply"><bounds x="0" y="0" width="18" height="18" /></element>
</view>
</mamelayout>

View File

@ -208,14 +208,14 @@ license:CC0
<element ref="hl" blend="add" inputtag="IN.2" inputmask="0x01"><bounds x="26" y="61" width="6" height="3.5" /></element>
<element ref="black"><bounds x="9" y="3" width="14" height="14" /></element>
<element ref="hlc" blend="add" inputtag="IN.5" inputmask="0x01"><bounds x="13.666" y="3" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.5" inputmask="0x08"><bounds x="9" y="7.666" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.5" inputmask="0x04"><bounds x="18.333" y="7.666" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.5" inputmask="0x02"><bounds x="13.666" y="12.333" width="4.666" height="4.666" /></element>
<element ref="nothing" blend="add" inputtag="IN.5" inputmask="0x01"><bounds x="9" y="3" width="14" height="3.5" /></element>
<element ref="nothing" blend="add" inputtag="IN.5" inputmask="0x08"><bounds x="9" y="6" width="5" height="8" /></element>
<element ref="nothing" blend="add" inputtag="IN.5" inputmask="0x04"><bounds x="18" y="6" width="5" height="8" /></element>
<element ref="nothing" blend="add" inputtag="IN.5" inputmask="0x02"><bounds x="9" y="13.5" width="14" height="3.5" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x01"><bounds x="13.666" y="3" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x08"><bounds x="9" y="7.666" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x04"><bounds x="18.333" y="7.666" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x02"><bounds x="13.666" y="12.333" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x10"><bounds x="9" y="3" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x20"><bounds x="18.333" y="3" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x40"><bounds x="9" y="12.333" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x80"><bounds x="18.333" y="12.333" width="4.666" height="4.666" /></element>
<element ref="black"><bounds x="9" y="22.5" width="14" height="45" /></element>
<element ref="nothing" blend="add" inputtag="IN.0" inputmask="0x00" inputraw="1"><bounds x="-1" y="-1" width="34" height="69" /></element>

View File

@ -522,14 +522,14 @@ license:CC0
<element ref="hl" blend="add" inputtag="IN.2" inputmask="0x01"><bounds x="26" y="61" width="6" height="3.5" /></element>
<element ref="black"><bounds x="9" y="3" width="14" height="14" /></element>
<element ref="hlc" blend="add" inputtag="IN.5" inputmask="0x01"><bounds x="13.666" y="3" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.5" inputmask="0x08"><bounds x="9" y="7.666" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.5" inputmask="0x04"><bounds x="18.333" y="7.666" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.5" inputmask="0x02"><bounds x="13.666" y="12.333" width="4.666" height="4.666" /></element>
<element ref="nothing" blend="add" inputtag="IN.5" inputmask="0x01"><bounds x="9" y="3" width="14" height="3.5" /></element>
<element ref="nothing" blend="add" inputtag="IN.5" inputmask="0x08"><bounds x="9" y="6" width="5" height="8" /></element>
<element ref="nothing" blend="add" inputtag="IN.5" inputmask="0x04"><bounds x="18" y="6" width="5" height="8" /></element>
<element ref="nothing" blend="add" inputtag="IN.5" inputmask="0x02"><bounds x="9" y="13.5" width="14" height="3.5" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x01"><bounds x="13.666" y="3" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x08"><bounds x="9" y="7.666" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x04"><bounds x="18.333" y="7.666" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x02"><bounds x="13.666" y="12.333" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x10"><bounds x="9" y="3" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x20"><bounds x="18.333" y="3" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x40"><bounds x="9" y="12.333" width="4.666" height="4.666" /></element>
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x80"><bounds x="18.333" y="12.333" width="4.666" height="4.666" /></element>
<element ref="black"><bounds x="9" y="22.5" width="14" height="45" /></element>
<element ref="nothing" blend="add" inputtag="IN.0" inputmask="0x00" inputraw="1"><bounds x="-1" y="-1" width="34" height="69" /></element>