mirror of
https://github.com/holub/mame
synced 2025-04-21 16:01:56 +03:00
savant: add screen overlay (nw)
This commit is contained in:
parent
b910a955e2
commit
9e84835983
@ -45,7 +45,7 @@ public:
|
||||
m_display(*this, "display"),
|
||||
m_board(*this, "board"),
|
||||
m_dac(*this, "dac"),
|
||||
m_inputs(*this, "IN.%u", 0)
|
||||
m_keypad(*this, "IN.0")
|
||||
{ }
|
||||
|
||||
// machine drivers
|
||||
@ -58,7 +58,7 @@ protected:
|
||||
required_device<pwm_display_device> m_display;
|
||||
required_device<sensorboard_device> m_board;
|
||||
optional_device<dac_bit_interface> m_dac;
|
||||
required_ioport_array<1> m_inputs;
|
||||
required_ioport m_keypad;
|
||||
|
||||
// I/O handlers
|
||||
void update_display();
|
||||
@ -152,14 +152,14 @@ READ8_MEMBER(presto_state::input_r)
|
||||
u8 data = 0;
|
||||
|
||||
// P10-P17: multiplexed inputs
|
||||
// read chessboard
|
||||
// read chessboard buttons
|
||||
for (int i = 0; i < 8; i++)
|
||||
if (BIT(m_inp_mux, i))
|
||||
data |= m_board->read_rank(i);
|
||||
|
||||
// read keypad
|
||||
// read sidepanel keypad
|
||||
if (m_kp_select)
|
||||
data |= m_inputs[0]->read();
|
||||
data |= m_keypad->read();
|
||||
|
||||
return ~data;
|
||||
}
|
||||
|
@ -20,7 +20,6 @@ anymore in original working order.
|
||||
|
||||
TODO:
|
||||
- get rid of m_wait_in hack when Z80 core accurately emulates WAIT pin
|
||||
- internal artwork
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
@ -38,7 +37,7 @@ TODO:
|
||||
#include "speaker.h"
|
||||
|
||||
// internal artwork
|
||||
//#include "novag_savant.lh" // clickable
|
||||
#include "novag_savant.lh" // clickable
|
||||
|
||||
|
||||
namespace {
|
||||
@ -63,6 +62,9 @@ public:
|
||||
// machine drivers
|
||||
void savant(machine_config &config);
|
||||
|
||||
// user-controlled light switch (9 light bulbs behind LCD panel)
|
||||
DECLARE_INPUT_CHANGED_MEMBER(light_switch) { output().set_value("backlight", newval); }
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
|
||||
@ -332,6 +334,11 @@ static INPUT_PORTS_START( savant )
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_NAME("Hint")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Y) PORT_NAME("Promote")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_NAME("Set Up")
|
||||
|
||||
PORT_START("LIGHT")
|
||||
PORT_CONFNAME( 0x01, 0x01, "LCD Backlight" ) PORT_CHANGED_MEMBER(DEVICE_SELF, savant_state, light_switch, nullptr)
|
||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -376,7 +383,7 @@ void savant_state::savant(machine_config &config)
|
||||
screen.set_visarea_full();
|
||||
|
||||
PWM_DISPLAY(config, m_display).set_size(8, 24+27);
|
||||
//config.set_default_layout(layout_novag_savant);
|
||||
config.set_default_layout(layout_novag_savant);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
@ -413,4 +420,4 @@ ROM_END
|
||||
******************************************************************************/
|
||||
|
||||
// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
|
||||
CONS( 1981, savant, 0, 0, savant, savant, savant_state, empty_init, "Novag", "Savant", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
|
||||
CONS( 1981, savant, 0, 0, savant, savant, savant_state, empty_init, "Novag", "Savant", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
@ -31,68 +31,68 @@
|
||||
</element>
|
||||
|
||||
<element name="text_1">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="1"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
<element name="text_2">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="2"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
<element name="text_3">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="3"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
<element name="text_4">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="4"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
<element name="text_5">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="5"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
<element name="text_6">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="6"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
<element name="text_7">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="7"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
<element name="text_8">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="8"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
|
||||
<element name="text_a">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="A"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
<element name="text_b">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="B"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
<element name="text_c">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="C"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
<element name="text_d">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="D"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
<element name="text_e">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="E"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
<element name="text_f">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="F"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
<element name="text_g">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="G"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
<element name="text_h">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.5" green="0.3" blue="0.25" /></rect>
|
||||
<text string="H"><color red="0.87" green="0.87" blue="0.84" /></text>
|
||||
</element>
|
||||
|
||||
@ -137,7 +137,7 @@
|
||||
|
||||
<!-- sb board -->
|
||||
|
||||
<element name="cblack"><rect><color red="0.5" green="0.37" blue="0.3" /></rect></element>
|
||||
<element name="cblack"><rect><color red="0.5" green="0.3" blue="0.25" /></rect></element>
|
||||
<element name="cwhite"><rect><color red="0.85" green="0.83" blue="0.7" /></rect></element>
|
||||
|
||||
<element name="hlbb" defstate="0">
|
||||
|
75
src/mame/layout/novag_savant.lay
Normal file
75
src/mame/layout/novag_savant.lay
Normal file
@ -0,0 +1,75 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="blackb"><rect><color red="0" green="0" blue="0" /></rect></element>
|
||||
<element name="cb_green"><rect><color red="0.3" green="0.8" blue="0.75" /></rect></element>
|
||||
<element name="cb_light" defstate="1">
|
||||
<rect state="0"><color red="0.33" green="0.3" blue="0.15" /></rect>
|
||||
<rect state="1"><color red="1.0" green="0.79" blue="0.38" /></rect>
|
||||
</element>
|
||||
|
||||
<element name="hl" defstate="0">
|
||||
<text string=" "><bounds x="0" y="0" width="1" height="1.0034" /></text>
|
||||
<disk state="1">
|
||||
<bounds x="0.12" y="0.1217" width="0.76" height="0.7634" />
|
||||
<color red="1" green="1" blue="1" />
|
||||
</disk>
|
||||
</element>
|
||||
|
||||
|
||||
<!-- display -->
|
||||
|
||||
<group name="display">
|
||||
<bounds x="0" y="0" width="101" height="114" />
|
||||
<screen index="0"><bounds x="0.5" y="0.5" width="100" height="112.735" /></screen>
|
||||
|
||||
<!-- squares -->
|
||||
<repeat count="4">
|
||||
<param name="y" start="10" increment="23.56" />
|
||||
<repeat count="4">
|
||||
<param name="x" start="14.84" increment="23.48" />
|
||||
<overlay element="cb_green"><bounds x="~x~" y="~y~" width="11.74" height="11.78" /></overlay>
|
||||
</repeat>
|
||||
</repeat>
|
||||
<repeat count="4">
|
||||
<param name="y" start="21.78" increment="23.56" />
|
||||
<repeat count="4">
|
||||
<param name="x" start="3.1" increment="23.48" />
|
||||
<overlay element="cb_green"><bounds x="~x~" y="~y~" width="11.74" height="11.78" /></overlay>
|
||||
</repeat>
|
||||
</repeat>
|
||||
|
||||
<overlay name="backlight" element="cb_light"><bounds x="0" y="0" width="101" height="114" /></overlay>
|
||||
|
||||
<!-- sensors -->
|
||||
<repeat count="8">
|
||||
<param name="y" start="10" increment="11.78" />
|
||||
<param name="i" start="8" increment="-1" />
|
||||
<repeat count="8">
|
||||
<param name="x" start="3.1" increment="11.74" />
|
||||
<param name="mask" start="0x01" lshift="1" />
|
||||
<bezel element="hl" inputtag="board:RANK.~i~" inputmask="~mask~"><bounds x="~x~" y="~y~" width="11.74" height="11.78" /><color alpha="0.15" /></bezel>
|
||||
</repeat>
|
||||
</repeat>
|
||||
|
||||
<!-- mask edges -->
|
||||
<bezel element="blackb"><bounds x="0" y="0" width="101" height="2" /></bezel>
|
||||
<bezel element="blackb"><bounds x="0" y="8.2" width="101" height="1" /></bezel>
|
||||
<bezel element="blackb"><bounds x="0" y="104.9" width="101" height="1" /></bezel>
|
||||
<bezel element="blackb"><bounds x="0" y="111.7" width="101" height="2" /></bezel>
|
||||
|
||||
<bezel element="blackb"><bounds x="0" y="0" width="1.5" height="114" /></bezel>
|
||||
<bezel element="blackb"><bounds x="98.7" y="0" width="2" height="114" /></bezel>
|
||||
</group>
|
||||
|
||||
|
||||
<!-- build screen -->
|
||||
|
||||
<view name="Internal Layout">
|
||||
<bounds left="1.5" right="98.7" top="2" bottom="111.7" />
|
||||
<group ref="display"><bounds x="0" y="0" width="101" height="114" /></group>
|
||||
</view>
|
||||
|
||||
</mamelayout>
|
Loading…
Reference in New Issue
Block a user