mirror of
https://github.com/holub/mame
synced 2025-05-01 12:16:56 +03:00
Merge remote-tracking branch 'mamedev/master'
This commit is contained in:
commit
44a63fccb7
27
hash/chessmstdm.xml
Normal file
27
hash/chessmstdm.xml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||||
|
<softwarelist name="chessmstdm" description="Chess-Master Diamond Modules">
|
||||||
|
|
||||||
|
<software name="pm10">
|
||||||
|
<description>PM10 Openings</description>
|
||||||
|
<year>1987</year>
|
||||||
|
<publisher>VEB Mikroelektronik Erfurt</publisher>
|
||||||
|
<part name="cart" interface="chessmstdm_cart">
|
||||||
|
<dataarea name="rom" size="0x2000">
|
||||||
|
<rom name="PM10_bm400.bin" size="0x2000" crc="aa784d7a" sha1="fd2d6cac9805a5aaf4f51b7c974d0314a402c186" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
<software name="pm11">
|
||||||
|
<description>PM11 Endings</description>
|
||||||
|
<year>1987</year>
|
||||||
|
<publisher>VEB Mikroelektronik Erfurt</publisher>
|
||||||
|
<part name="cart" interface="chessmstdm_cart">
|
||||||
|
<dataarea name="rom" size="0x4000">
|
||||||
|
<rom name="PM11_bm403_bm607.bin" size="0x4000" crc="5af4f3e2" sha1="7c9befc6182d65ca0c7d53820a0f84a3a55b9c78" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
</softwarelist>
|
@ -3021,6 +3021,17 @@ Known PC Booter Games Not Dumped, Or Dumped and Lost when Demonlord's Site went
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
|
<software name="budokan">
|
||||||
|
<description>Budokan - The Martial Spirit</description>
|
||||||
|
<year>1989</year>
|
||||||
|
<publisher>Electronic Arts</publisher>
|
||||||
|
<part name="flop1" interface="floppy_3_5">
|
||||||
|
<dataarea name="flop" size = "737280">
|
||||||
|
<rom name="Budokan - The Martial Spirit [Electronic Arts] [1989] [3.5] [1 of 1].img" size="737280" crc="fea46e33" sha1="bf874ea08695344cc9c3db8bc1b2db2e0b62ca9f" offset="0"/>
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
<software name="armorik">
|
<software name="armorik">
|
||||||
<description>Les 8 Conquêtes d'Armorik le Viking</description>
|
<description>Les 8 Conquêtes d'Armorik le Viking</description>
|
||||||
<year>1988</year>
|
<year>1988</year>
|
||||||
@ -3046,7 +3057,23 @@ Known PC Booter Games Not Dumped, Or Dumped and Lost when Demonlord's Site went
|
|||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="indy500">
|
<software name="indy500">
|
||||||
<description>Indianapolis 500: The Simulation</description>
|
<description>Indianapolis 500: The Simulation (5.25")</description>
|
||||||
|
<year>1989</year>
|
||||||
|
<publisher>Electronic Arts</publisher>
|
||||||
|
<part name="flop1" interface="floppy_5_25">
|
||||||
|
<dataarea name="flop" size = "368640">
|
||||||
|
<rom name="Indianapolis 500 - The Simulation [1989] [5.25] [1 of 2].img" size="368640" crc="5d8f3b23" sha1="c3abf7a4cbc444ee1d60c5de278812502e529932" offset="0"/>
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
<part name="flop2" interface="floppy_5_25">
|
||||||
|
<dataarea name="flop" size = "368640">
|
||||||
|
<rom name="Indianapolis 500 - The Simulation [1989] [5.25] [2 of 2].img" size="368640" crc="ca21e0ee" sha1="875c81518345d100444457b610873d36061c3602" offset="0"/>
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
<software name="indy500_35" cloneof="indy500">
|
||||||
|
<description>Indianapolis 500: The Simulation (3.5")</description>
|
||||||
<year>1989</year>
|
<year>1989</year>
|
||||||
<publisher>Electronic Arts</publisher>
|
<publisher>Electronic Arts</publisher>
|
||||||
<part name="flop1" interface="floppy_3_5">
|
<part name="flop1" interface="floppy_3_5">
|
||||||
@ -3225,6 +3252,23 @@ Known PC Booter Games Not Dumped, Or Dumped and Lost when Demonlord's Site went
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
|
<!-- Fatal error: Incorrect layout on track 39 head 0, expected_size=100000, current_size=103360 -->
|
||||||
|
<software name="purplesa" supported="no">
|
||||||
|
<description>Purple Saturn Day</description>
|
||||||
|
<year>1989</year>
|
||||||
|
<publisher>Epyx</publisher>
|
||||||
|
<part name="flop1" interface="floppy_5_25">
|
||||||
|
<dataarea name="flop" size = "354497">
|
||||||
|
<rom name="Purple Saturn Day [1989] [5.25] [1 of 2].td0" size="354497" crc="8832e9eb" sha1="84a4d1f85ad8f34f11686d3f8c5725a5f332b652" offset="0"/>
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
<part name="flop2" interface="floppy_5_25">
|
||||||
|
<dataarea name="flop" size = "339570">
|
||||||
|
<rom name="Purple Saturn Day [1989] [5.25] [2 of 2].td0" size="339570" crc="c9170d4c" sha1="158295366af0822a741fb1ebd34c0a52eced5825" offset="0"/>
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
<software name="skatedie">
|
<software name="skatedie">
|
||||||
<description>Skate or Die (5.25")</description>
|
<description>Skate or Die (5.25")</description>
|
||||||
<year>1988</year>
|
<year>1988</year>
|
||||||
|
@ -3611,6 +3611,54 @@ Missing files come here
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
|
<software name="wp60">
|
||||||
|
<description>WordPerfect 6.0 for DOS</description>
|
||||||
|
<year>1993</year>
|
||||||
|
<publisher>WordPerfect Corporation</publisher>
|
||||||
|
<part name="flop1" interface="floppy_3_5">
|
||||||
|
<feature name="part_id" value="Install 1"/>
|
||||||
|
<dataarea name="flop" size = "1474560">
|
||||||
|
<rom name="Word Perfect 6.0 DOS - Disk 1.img" size="1474560" crc="18ea85ae" sha1="a22d6f1b8a266960b35cdb56201ca2448296da5a" offset="0"/>
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
<part name="flop2" interface="floppy_3_5">
|
||||||
|
<feature name="part_id" value="Install 2"/>
|
||||||
|
<dataarea name="flop" size = "1474560">
|
||||||
|
<rom name="Word Perfect 6.0 DOS - Disk 2.img" size="1474560" crc="c5045bb4" sha1="337c138c7ab4c9c9bb19150d652f949ce5ce3cd5" offset="0"/>
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
<part name="flop3" interface="floppy_3_5">
|
||||||
|
<feature name="part_id" value="Install 3"/>
|
||||||
|
<dataarea name="flop" size = "1474560">
|
||||||
|
<rom name="Word Perfect 6.0 DOS - Disk 3.img" size="1474560" crc="bd22e80b" sha1="e274a5fe47ead680d070804faa79c0dae2bf0a59" offset="0"/>
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
<part name="flop4" interface="floppy_3_5">
|
||||||
|
<feature name="part_id" value="Install 4"/>
|
||||||
|
<dataarea name="flop" size = "1474560">
|
||||||
|
<rom name="Word Perfect 6.0 DOS - Disk 4.img" size="1474560" crc="5261f673" sha1="4c1462b853f884c835d979c5fa3c7b12f5ce4a5f" offset="0"/>
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
<part name="flop5" interface="floppy_3_5">
|
||||||
|
<feature name="part_id" value="Program 1"/>
|
||||||
|
<dataarea name="flop" size = "1474560">
|
||||||
|
<rom name="Word Perfect 6.0 DOS - Disk 5.img" size="1474560" crc="316c1cf7" sha1="0d4c0a7edb79f36cd5460ca7fabe6ea212127b92" offset="0"/>
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
<part name="flop6" interface="floppy_3_5">
|
||||||
|
<feature name="part_id" value="Program 2"/>
|
||||||
|
<dataarea name="flop" size = "1474560">
|
||||||
|
<rom name="Word Perfect 6.0 DOS - Disk 6.img" size="1474560" crc="76dfdce7" sha1="a1cae91a0a32557e1c97dec62bd86c1722afb217" offset="0"/>
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
<part name="flop7" interface="floppy_3_5">
|
||||||
|
<feature name="part_id" value="Program 3"/>
|
||||||
|
<dataarea name="flop" size = "1474560">
|
||||||
|
<rom name="Word Perfect 6.0 DOS - Disk 7.img" size="1474560" crc="50b4d482" sha1="02894c316a1900bce1d07bc8c0458bdb88e35699" offset="0"/>
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
<software name="mbhh95">
|
<software name="mbhh95">
|
||||||
<description>MikroBITTI Huvi- ja hyötylevyke 1995 (Fin)</description>
|
<description>MikroBITTI Huvi- ja hyötylevyke 1995 (Fin)</description>
|
||||||
<year>1995</year>
|
<year>1995</year>
|
||||||
|
@ -124,7 +124,7 @@ static const char *const s_gtelm[] =
|
|||||||
|
|
||||||
static char *effective_address( psxcpu_state *state, UINT32 pc, UINT32 op )
|
static char *effective_address( psxcpu_state *state, UINT32 pc, UINT32 op )
|
||||||
{
|
{
|
||||||
static char s_address[ 20 ];
|
static char s_address[ 30 ];
|
||||||
|
|
||||||
if( state != nullptr && state->pc() == pc )
|
if( state != nullptr && state->pc() == pc )
|
||||||
{
|
{
|
||||||
|
@ -32,11 +32,11 @@ int m68340_calc_cs(m68340cpu_device *m68k, offs_t address)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
UINT16 m68340_get_cs(m68340cpu_device *device, offs_t address)
|
UINT16 m68340cpu_device::get_cs(offs_t address)
|
||||||
{
|
{
|
||||||
device->m68340_currentcs = m68340_calc_cs(device, address);
|
m68340_currentcs = m68340_calc_cs(this, address);
|
||||||
|
|
||||||
return device->m68340_currentcs;
|
return m68340_currentcs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,6 +38,8 @@ public:
|
|||||||
UINT16 m_picr;
|
UINT16 m_picr;
|
||||||
UINT16 m_pitr;
|
UINT16 m_pitr;
|
||||||
|
|
||||||
|
UINT16 get_cs(offs_t address);
|
||||||
|
|
||||||
READ32_MEMBER( m68340_internal_base_r );
|
READ32_MEMBER( m68340_internal_base_r );
|
||||||
WRITE32_MEMBER( m68340_internal_base_w );
|
WRITE32_MEMBER( m68340_internal_base_w );
|
||||||
READ32_MEMBER( m68340_internal_dma_r );
|
READ32_MEMBER( m68340_internal_dma_r );
|
||||||
@ -66,8 +68,6 @@ protected:
|
|||||||
|
|
||||||
static const device_type M68340 = &device_creator<m68340cpu_device>;
|
static const device_type M68340 = &device_creator<m68340cpu_device>;
|
||||||
|
|
||||||
extern UINT16 m68340_get_cs(m68340cpu_device *device, offs_t address);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -150,7 +150,6 @@ favorite_manager::favorite_manager(running_machine &machine, ui_options &moption
|
|||||||
: m_machine(machine)
|
: m_machine(machine)
|
||||||
, m_options(moptions)
|
, m_options(moptions)
|
||||||
{
|
{
|
||||||
m_current = -1;
|
|
||||||
parse_favorite();
|
parse_favorite();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -160,7 +159,7 @@ favorite_manager::favorite_manager(running_machine &machine, ui_options &moption
|
|||||||
|
|
||||||
void favorite_manager::add_favorite_game(const game_driver *driver)
|
void favorite_manager::add_favorite_game(const game_driver *driver)
|
||||||
{
|
{
|
||||||
m_list.emplace_back(driver->name, driver->description, "", "", "", 0, "", driver, "", "", "", 1, "", "", "", true);
|
m_list.emplace(driver->description, ui_software_info{ driver->name, driver->description, "", "", "", 0, "", driver, "", "", "", 1, "", "", "", true });
|
||||||
save_favorite_games();
|
save_favorite_games();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,7 +169,7 @@ void favorite_manager::add_favorite_game(const game_driver *driver)
|
|||||||
|
|
||||||
void favorite_manager::add_favorite_game(ui_software_info &swinfo)
|
void favorite_manager::add_favorite_game(ui_software_info &swinfo)
|
||||||
{
|
{
|
||||||
m_list.push_back(swinfo);
|
m_list.emplace(swinfo.longname, swinfo);
|
||||||
save_favorite_games();
|
save_favorite_games();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -229,7 +228,7 @@ void favorite_manager::add_favorite_game()
|
|||||||
tmpmatches.devicetype = strensure(image.image_type_name());
|
tmpmatches.devicetype = strensure(image.image_type_name());
|
||||||
tmpmatches.available = true;
|
tmpmatches.available = true;
|
||||||
software_avail = true;
|
software_avail = true;
|
||||||
m_list.push_back(tmpmatches);
|
m_list.emplace(tmpmatches.longname, tmpmatches);
|
||||||
save_favorite_games();
|
save_favorite_games();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -244,7 +243,13 @@ void favorite_manager::add_favorite_game()
|
|||||||
|
|
||||||
void favorite_manager::remove_favorite_game(ui_software_info &swinfo)
|
void favorite_manager::remove_favorite_game(ui_software_info &swinfo)
|
||||||
{
|
{
|
||||||
m_list.erase(std::remove(m_list.begin(), m_list.end(), swinfo), m_list.end());
|
for (auto e = m_list.begin(); e != m_list.end(); ++e)
|
||||||
|
if (e->second == swinfo)
|
||||||
|
{
|
||||||
|
m_list.erase(e);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
m_current = m_list.begin();
|
||||||
save_favorite_games();
|
save_favorite_games();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,7 +259,8 @@ void favorite_manager::remove_favorite_game(ui_software_info &swinfo)
|
|||||||
|
|
||||||
void favorite_manager::remove_favorite_game()
|
void favorite_manager::remove_favorite_game()
|
||||||
{
|
{
|
||||||
m_list.erase(m_list.begin() + m_current);
|
m_list.erase(m_current);
|
||||||
|
m_current = m_list.begin();
|
||||||
save_favorite_games();
|
save_favorite_games();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -275,9 +281,9 @@ bool favorite_manager::isgame_favorite()
|
|||||||
if (image.exists() && swinfo != nullptr)
|
if (image.exists() && swinfo != nullptr)
|
||||||
{
|
{
|
||||||
image_loaded = true;
|
image_loaded = true;
|
||||||
for (size_t current = 0; current < m_list.size(); current++)
|
for (auto current = m_list.begin(); current != m_list.end(); ++current)
|
||||||
if (m_list[current].shortname == swinfo->shortname() &&
|
if (current->second.shortname == swinfo->shortname() &&
|
||||||
m_list[current].listname == image.software_list_name())
|
current->second.listname == image.software_list_name())
|
||||||
{
|
{
|
||||||
m_current = current;
|
m_current = current;
|
||||||
return true;
|
return true;
|
||||||
@ -288,7 +294,7 @@ bool favorite_manager::isgame_favorite()
|
|||||||
if (!image_loaded)
|
if (!image_loaded)
|
||||||
return isgame_favorite(&machine().system());
|
return isgame_favorite(&machine().system());
|
||||||
|
|
||||||
m_current = -1;
|
m_current = m_list.begin();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -298,14 +304,14 @@ bool favorite_manager::isgame_favorite()
|
|||||||
|
|
||||||
bool favorite_manager::isgame_favorite(const game_driver *driver)
|
bool favorite_manager::isgame_favorite(const game_driver *driver)
|
||||||
{
|
{
|
||||||
for (size_t x = 0; x < m_list.size(); x++)
|
for (auto current = m_list.begin(); current != m_list.end(); ++current)
|
||||||
if (m_list[x].driver == driver && m_list[x].shortname == driver->name)
|
if (current->second.driver == driver && current->second.shortname == driver->name)
|
||||||
{
|
{
|
||||||
m_current = x;
|
m_current = current;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_current = -1;
|
m_current = m_list.begin();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -315,14 +321,14 @@ bool favorite_manager::isgame_favorite(const game_driver *driver)
|
|||||||
|
|
||||||
bool favorite_manager::isgame_favorite(ui_software_info const &swinfo)
|
bool favorite_manager::isgame_favorite(ui_software_info const &swinfo)
|
||||||
{
|
{
|
||||||
for (size_t x = 0; x < m_list.size(); x++)
|
for (auto current = m_list.begin(); current != m_list.end(); ++current)
|
||||||
if (m_list[x] == swinfo)
|
if (current->second == swinfo)
|
||||||
{
|
{
|
||||||
m_current = x;
|
m_current = current;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_current = -1;
|
m_current = m_list.begin();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -378,7 +384,7 @@ void favorite_manager::parse_favorite()
|
|||||||
tmpmatches.devicetype = chartrimcarriage(readbuf);
|
tmpmatches.devicetype = chartrimcarriage(readbuf);
|
||||||
file.gets(readbuf, 1024);
|
file.gets(readbuf, 1024);
|
||||||
tmpmatches.available = atoi(readbuf);
|
tmpmatches.available = atoi(readbuf);
|
||||||
m_list.push_back(tmpmatches);
|
m_list.emplace(tmpmatches.longname, tmpmatches);
|
||||||
}
|
}
|
||||||
file.close();
|
file.close();
|
||||||
}
|
}
|
||||||
@ -404,8 +410,9 @@ void favorite_manager::save_favorite_games()
|
|||||||
// generate the favorite INI
|
// generate the favorite INI
|
||||||
std::ostringstream text;
|
std::ostringstream text;
|
||||||
text << "[ROOT_FOLDER]\n[Favorite]\n\n";
|
text << "[ROOT_FOLDER]\n[Favorite]\n\n";
|
||||||
for (auto & elem : m_list)
|
for (auto & e : m_list)
|
||||||
{
|
{
|
||||||
|
auto elem = e.second;
|
||||||
text << elem.shortname << '\n';
|
text << elem.shortname << '\n';
|
||||||
text << elem.longname << '\n';
|
text << elem.longname << '\n';
|
||||||
text << elem.parentname << '\n';
|
text << elem.parentname << '\n';
|
||||||
|
@ -83,8 +83,17 @@ public:
|
|||||||
// construction/destruction
|
// construction/destruction
|
||||||
favorite_manager(running_machine &machine, ui_options &moptions);
|
favorite_manager(running_machine &machine, ui_options &moptions);
|
||||||
|
|
||||||
|
// favorites comparator
|
||||||
|
struct ci_less
|
||||||
|
{
|
||||||
|
bool operator() (const std::string &s1, const std::string &s2) const
|
||||||
|
{
|
||||||
|
return (core_stricmp(s1.c_str(), s2.c_str()) < 0);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// favorite indices
|
// favorite indices
|
||||||
std::vector<ui_software_info> m_list;
|
std::multimap<std::string, ui_software_info, ci_less> m_list;
|
||||||
|
|
||||||
// getters
|
// getters
|
||||||
running_machine &machine() const { return m_machine; }
|
running_machine &machine() const { return m_machine; }
|
||||||
@ -110,7 +119,7 @@ private:
|
|||||||
const char *favorite_filename = "favorites.ini";
|
const char *favorite_filename = "favorites.ini";
|
||||||
|
|
||||||
// current
|
// current
|
||||||
int m_current;
|
std::multimap<std::string, ui_software_info>::iterator m_current;
|
||||||
|
|
||||||
// parse file ui_favorite
|
// parse file ui_favorite
|
||||||
void parse_favorite();
|
void parse_favorite();
|
||||||
|
@ -681,6 +681,7 @@ menu_machine_configure::menu_machine_configure(mame_ui_manager &mui, render_cont
|
|||||||
, x0(_x0)
|
, x0(_x0)
|
||||||
, y0(_y0)
|
, y0(_y0)
|
||||||
, m_curbios(0)
|
, m_curbios(0)
|
||||||
|
, m_fav_reset(false)
|
||||||
{
|
{
|
||||||
// parse the INI file
|
// parse the INI file
|
||||||
std::string error;
|
std::string error;
|
||||||
@ -690,6 +691,8 @@ menu_machine_configure::menu_machine_configure(mame_ui_manager &mui, render_cont
|
|||||||
|
|
||||||
menu_machine_configure::~menu_machine_configure()
|
menu_machine_configure::~menu_machine_configure()
|
||||||
{
|
{
|
||||||
|
if (m_fav_reset)
|
||||||
|
reset_topmost(reset_options::SELECT_FIRST);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
@ -724,10 +727,15 @@ void menu_machine_configure::handle()
|
|||||||
mame_machine_manager::instance()->favorite().add_favorite_game(m_drv);
|
mame_machine_manager::instance()->favorite().add_favorite_game(m_drv);
|
||||||
reset(reset_options::REMEMBER_POSITION);
|
reset(reset_options::REMEMBER_POSITION);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DELFAV:
|
case DELFAV:
|
||||||
mame_machine_manager::instance()->favorite().remove_favorite_game();
|
mame_machine_manager::instance()->favorite().remove_favorite_game();
|
||||||
reset(reset_options::REMEMBER_POSITION);
|
if (main_filters::actual == FILTER_FAVORITE)
|
||||||
|
{
|
||||||
|
m_fav_reset = true;
|
||||||
|
menu::stack_pop();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
reset(reset_options::REMEMBER_POSITION);
|
||||||
break;
|
break;
|
||||||
case CONTROLLER:
|
case CONTROLLER:
|
||||||
if (menu_event->iptkey == IPT_UI_SELECT)
|
if (menu_event->iptkey == IPT_UI_SELECT)
|
||||||
|
@ -165,6 +165,7 @@ private:
|
|||||||
s_bios m_bios;
|
s_bios m_bios;
|
||||||
std::size_t m_curbios;
|
std::size_t m_curbios;
|
||||||
void setup_bios();
|
void setup_bios();
|
||||||
|
bool m_fav_reset;
|
||||||
};
|
};
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
@ -549,36 +549,37 @@ void menu_select_game::populate()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// populate favorites list
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// populate favorites list
|
||||||
m_search[0] = '\0';
|
m_search[0] = '\0';
|
||||||
int curitem = 0;
|
int curitem = 0;
|
||||||
|
|
||||||
// iterate over entries
|
// iterate over entries
|
||||||
for (auto & mfavorite : mame_machine_manager::instance()->favorite().m_list)
|
for (auto & favmap : mame_machine_manager::instance()->favorite().m_list)
|
||||||
{
|
{
|
||||||
auto flags = flags_ui | FLAG_UI_FAVORITE;
|
auto flags = flags_ui | FLAG_UI_FAVORITE;
|
||||||
if (mfavorite.startempty == 1)
|
if (favmap.second.startempty == 1)
|
||||||
{
|
{
|
||||||
if (old_item_selected == -1 && mfavorite.shortname == reselect_last::driver)
|
if (old_item_selected == -1 && favmap.second.shortname == reselect_last::driver)
|
||||||
old_item_selected = curitem;
|
old_item_selected = curitem;
|
||||||
|
|
||||||
bool cloneof = strcmp(mfavorite.driver->parent, "0");
|
bool cloneof = strcmp(favmap.second.driver->parent, "0");
|
||||||
if (cloneof)
|
if (cloneof)
|
||||||
{
|
{
|
||||||
int cx = driver_list::find(mfavorite.driver->parent);
|
int cx = driver_list::find(favmap.second.driver->parent);
|
||||||
if (cx != -1 && ((driver_list::driver(cx).flags & MACHINE_IS_BIOS_ROOT) != 0))
|
if (cx != -1 && ((driver_list::driver(cx).flags & MACHINE_IS_BIOS_ROOT) != 0))
|
||||||
cloneof = false;
|
cloneof = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
item_append(mfavorite.longname, "", (cloneof) ? (flags | FLAG_INVERT) : flags, (void *)&mfavorite);
|
item_append(favmap.second.longname, "", (cloneof) ? (flags | FLAG_INVERT) : flags, (void *)&favmap.second);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (old_item_selected == -1 && mfavorite.shortname == reselect_last::driver)
|
if (old_item_selected == -1 && favmap.second.shortname == reselect_last::driver)
|
||||||
old_item_selected = curitem;
|
old_item_selected = curitem;
|
||||||
item_append(mfavorite.longname, mfavorite.devicetype,
|
item_append(favmap.second.longname, favmap.second.devicetype,
|
||||||
mfavorite.parentname.empty() ? flags : (FLAG_INVERT | flags), (void *)&mfavorite);
|
favmap.second.parentname.empty() ? flags : (FLAG_INVERT | flags), (void *)&favmap.second);
|
||||||
}
|
}
|
||||||
curitem++;
|
curitem++;
|
||||||
}
|
}
|
||||||
@ -993,9 +994,6 @@ void menu_select_game::inkey_special(const event *menu_event)
|
|||||||
|
|
||||||
void menu_select_game::build_list(const char *filter_text, int filter, bool bioscheck, std::vector<const game_driver *> s_drivers)
|
void menu_select_game::build_list(const char *filter_text, int filter, bool bioscheck, std::vector<const game_driver *> s_drivers)
|
||||||
{
|
{
|
||||||
int cx = 0;
|
|
||||||
bool cloneof = false;
|
|
||||||
|
|
||||||
if (s_drivers.empty())
|
if (s_drivers.empty())
|
||||||
{
|
{
|
||||||
filter = main_filters::actual;
|
filter = main_filters::actual;
|
||||||
@ -1037,20 +1035,21 @@ void menu_select_game::build_list(const char *filter_text, int filter, bool bios
|
|||||||
|
|
||||||
case FILTER_PARENT:
|
case FILTER_PARENT:
|
||||||
case FILTER_CLONES:
|
case FILTER_CLONES:
|
||||||
cloneof = strcmp(s_driver->parent, "0");
|
|
||||||
if (cloneof)
|
|
||||||
{
|
{
|
||||||
cx = driver_list::find(s_driver->parent);
|
bool cloneof = strcmp(s_driver->parent, "0");
|
||||||
if (cx != -1 && ((driver_list::driver(cx).flags & MACHINE_IS_BIOS_ROOT) != 0))
|
if (cloneof)
|
||||||
cloneof = false;
|
{
|
||||||
|
auto cx = driver_list::find(s_driver->parent);
|
||||||
|
if (cx != -1 && ((driver_list::driver(cx).flags & MACHINE_IS_BIOS_ROOT) != 0))
|
||||||
|
cloneof = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filter == FILTER_CLONES && cloneof)
|
||||||
|
m_displaylist.push_back(s_driver);
|
||||||
|
else if (filter == FILTER_PARENT && !cloneof)
|
||||||
|
m_displaylist.push_back(s_driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (filter == FILTER_CLONES && cloneof)
|
|
||||||
m_displaylist.push_back(s_driver);
|
|
||||||
else if (filter == FILTER_PARENT && !cloneof)
|
|
||||||
m_displaylist.push_back(s_driver);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FILTER_NOT_WORKING:
|
case FILTER_NOT_WORKING:
|
||||||
if (s_driver->flags & MACHINE_NOT_WORKING)
|
if (s_driver->flags & MACHINE_NOT_WORKING)
|
||||||
m_displaylist.push_back(s_driver);
|
m_displaylist.push_back(s_driver);
|
||||||
@ -1417,11 +1416,10 @@ bool menu_select_game::load_available_machines()
|
|||||||
|
|
||||||
file.gets(rbuf, MAX_CHAR_INFO);
|
file.gets(rbuf, MAX_CHAR_INFO);
|
||||||
file.gets(rbuf, MAX_CHAR_INFO);
|
file.gets(rbuf, MAX_CHAR_INFO);
|
||||||
int avsize = 0, unavsize = 0;
|
|
||||||
file.gets(rbuf, MAX_CHAR_INFO);
|
file.gets(rbuf, MAX_CHAR_INFO);
|
||||||
avsize = atoi(rbuf);
|
auto avsize = atoi(rbuf);
|
||||||
file.gets(rbuf, MAX_CHAR_INFO);
|
file.gets(rbuf, MAX_CHAR_INFO);
|
||||||
unavsize = atoi(rbuf);
|
auto unavsize = atoi(rbuf);
|
||||||
|
|
||||||
// load available list
|
// load available list
|
||||||
for (int x = 0; x < avsize; ++x)
|
for (int x = 0; x < avsize; ++x)
|
||||||
|
@ -37,16 +37,19 @@ const char *jvc_format::extensions() const
|
|||||||
|
|
||||||
bool jvc_format::parse_header(io_generic *io, int &header_size, int &tracks, int &heads, int §ors, int §or_size, int &base_sector_id)
|
bool jvc_format::parse_header(io_generic *io, int &header_size, int &tracks, int &heads, int §ors, int §or_size, int &base_sector_id)
|
||||||
{
|
{
|
||||||
|
// The JVC format has a header whose size is the size of the image modulo 256. Currently, we only
|
||||||
|
// handle up to five header bytes
|
||||||
UINT64 size = io_generic_size(io);
|
UINT64 size = io_generic_size(io);
|
||||||
header_size = size % 256;
|
header_size = size % 256;
|
||||||
UINT8 header[5];
|
UINT8 header[5];
|
||||||
|
|
||||||
|
// if we know that this is a header of a bad size, we can fail
|
||||||
|
// immediately; otherwise read the header
|
||||||
|
if (header_size >= sizeof(header))
|
||||||
|
return false;
|
||||||
if (header_size > 0)
|
if (header_size > 0)
|
||||||
io_generic_read(io, header, 0, header_size);
|
io_generic_read(io, header, 0, header_size);
|
||||||
|
|
||||||
if (header_size > 5)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// default values
|
// default values
|
||||||
heads = 1;
|
heads = 1;
|
||||||
sectors = 18;
|
sectors = 18;
|
||||||
|
@ -133,7 +133,7 @@ public:
|
|||||||
READ32_MEMBER(astrafr_state::astrafr_mem_r)
|
READ32_MEMBER(astrafr_state::astrafr_mem_r)
|
||||||
{
|
{
|
||||||
int pc = space.device().safe_pc();
|
int pc = space.device().safe_pc();
|
||||||
int cs = m68340_get_cs(m_maincpu, offset * 4);
|
int cs = m_maincpu->get_cs(offset * 4);
|
||||||
|
|
||||||
switch ( cs )
|
switch ( cs )
|
||||||
{
|
{
|
||||||
@ -161,7 +161,7 @@ WRITE32_MEMBER(astrafr_state::astrafr_mem_w)
|
|||||||
{
|
{
|
||||||
int pc = space.device().safe_pc();
|
int pc = space.device().safe_pc();
|
||||||
int address = offset * 4;
|
int address = offset * 4;
|
||||||
int cs = m68340_get_cs(m_maincpu, address);
|
int cs = m_maincpu->get_cs(address);
|
||||||
|
|
||||||
|
|
||||||
switch ( cs )
|
switch ( cs )
|
||||||
@ -190,7 +190,7 @@ WRITE32_MEMBER(astrafr_state::astrafr_mem_w)
|
|||||||
READ32_MEMBER(astrafr_state::astrafr_slave_mem_r)
|
READ32_MEMBER(astrafr_state::astrafr_slave_mem_r)
|
||||||
{
|
{
|
||||||
int pc = space.device().safe_pc();
|
int pc = space.device().safe_pc();
|
||||||
int cs = m68340_get_cs(m_slavecpu, offset * 4);
|
int cs = m_slavecpu->get_cs(offset * 4);
|
||||||
|
|
||||||
switch ( cs )
|
switch ( cs )
|
||||||
{
|
{
|
||||||
@ -216,7 +216,7 @@ WRITE32_MEMBER(astrafr_state::astrafr_slave_mem_w)
|
|||||||
{
|
{
|
||||||
int pc = space.device().safe_pc();
|
int pc = space.device().safe_pc();
|
||||||
int address = offset * 4;
|
int address = offset * 4;
|
||||||
int cs = m68340_get_cs(m_slavecpu, address);
|
int cs = m_slavecpu->get_cs(address);
|
||||||
|
|
||||||
|
|
||||||
switch ( cs )
|
switch ( cs )
|
||||||
|
@ -624,7 +624,7 @@ ADDRESS_MAP_END
|
|||||||
READ32_MEMBER(sc4_adder4_state::adder4_mem_r)
|
READ32_MEMBER(sc4_adder4_state::adder4_mem_r)
|
||||||
{
|
{
|
||||||
int pc = space.device().safe_pc();
|
int pc = space.device().safe_pc();
|
||||||
int cs = m68340_get_cs(m_adder4cpu, offset * 4);
|
int cs = m_adder4cpu->get_cs(offset * 4);
|
||||||
|
|
||||||
switch ( cs )
|
switch ( cs )
|
||||||
{
|
{
|
||||||
@ -646,7 +646,7 @@ READ32_MEMBER(sc4_adder4_state::adder4_mem_r)
|
|||||||
WRITE32_MEMBER(sc4_adder4_state::adder4_mem_w)
|
WRITE32_MEMBER(sc4_adder4_state::adder4_mem_w)
|
||||||
{
|
{
|
||||||
int pc = space.device().safe_pc();
|
int pc = space.device().safe_pc();
|
||||||
int cs = m68340_get_cs(m_adder4cpu, offset * 4);
|
int cs = m_adder4cpu->get_cs(offset * 4);
|
||||||
|
|
||||||
switch ( cs )
|
switch ( cs )
|
||||||
{
|
{
|
||||||
|
@ -136,7 +136,7 @@ protected:
|
|||||||
READ32_MEMBER(bfm_swp_state::bfm_swp_mem_r)
|
READ32_MEMBER(bfm_swp_state::bfm_swp_mem_r)
|
||||||
{
|
{
|
||||||
int pc = space.device().safe_pc();
|
int pc = space.device().safe_pc();
|
||||||
int cs = m68340_get_cs(m_maincpu, offset * 4);
|
int cs = m_maincpu->get_cs(offset * 4);
|
||||||
|
|
||||||
switch ( cs )
|
switch ( cs )
|
||||||
{
|
{
|
||||||
@ -158,7 +158,7 @@ READ32_MEMBER(bfm_swp_state::bfm_swp_mem_r)
|
|||||||
WRITE32_MEMBER(bfm_swp_state::bfm_swp_mem_w)
|
WRITE32_MEMBER(bfm_swp_state::bfm_swp_mem_w)
|
||||||
{
|
{
|
||||||
int pc = space.device().safe_pc();
|
int pc = space.device().safe_pc();
|
||||||
int cs = m68340_get_cs(m_maincpu, offset * 4);
|
int cs = m_maincpu->get_cs(offset * 4);
|
||||||
|
|
||||||
switch ( cs )
|
switch ( cs )
|
||||||
{
|
{
|
||||||
|
@ -6,7 +6,6 @@
|
|||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- figure out why chessmsta won't work, for starters it assume z80 carry flag is set at poweron?
|
- figure out why chessmsta won't work, for starters it assume z80 carry flag is set at poweron?
|
||||||
- a better artwork
|
|
||||||
|
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
@ -14,8 +13,15 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "machine/z80pio.h"
|
#include "machine/z80pio.h"
|
||||||
|
#include "machine/clock.h"
|
||||||
#include "sound/speaker.h"
|
#include "sound/speaker.h"
|
||||||
|
#include "sound/beep.h"
|
||||||
#include "chessmst.lh"
|
#include "chessmst.lh"
|
||||||
|
#include "chessmstdm.lh"
|
||||||
|
|
||||||
|
#include "bus/generic/slot.h"
|
||||||
|
#include "bus/generic/carts.h"
|
||||||
|
|
||||||
|
|
||||||
class chessmst_state : public driver_device
|
class chessmst_state : public driver_device
|
||||||
{
|
{
|
||||||
@ -23,24 +29,40 @@ public:
|
|||||||
chessmst_state(const machine_config &mconfig, device_type type, const char *tag)
|
chessmst_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag),
|
||||||
m_maincpu(*this, "maincpu"),
|
m_maincpu(*this, "maincpu"),
|
||||||
m_speaker(*this, "speaker")
|
m_pia2(*this, "z80pio2"),
|
||||||
|
m_speaker(*this, "speaker"),
|
||||||
|
m_beeper(*this, "beeper"),
|
||||||
|
m_extra(*this, "EXTRA")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
required_device<speaker_sound_device> m_speaker;
|
required_device<z80pio_device> m_pia2;
|
||||||
|
optional_device<speaker_sound_device> m_speaker;
|
||||||
|
optional_device<beep_device> m_beeper;
|
||||||
|
required_ioport m_extra;
|
||||||
|
|
||||||
UINT16 m_matrix;
|
UINT16 m_matrix;
|
||||||
UINT16 m_led_sel;
|
UINT16 m_led_sel;
|
||||||
UINT8 m_sensor[64];
|
UINT8 m_sensor[64];
|
||||||
|
UINT8 m_digit_matrix;
|
||||||
|
int m_digit_dot;
|
||||||
|
UINT16 m_digit;
|
||||||
|
|
||||||
virtual void machine_reset() override;
|
virtual void machine_reset() override;
|
||||||
|
|
||||||
|
DECLARE_WRITE8_MEMBER( digits_w );
|
||||||
DECLARE_WRITE8_MEMBER( pio1_port_a_w );
|
DECLARE_WRITE8_MEMBER( pio1_port_a_w );
|
||||||
DECLARE_WRITE8_MEMBER( pio1_port_b_w );
|
DECLARE_WRITE8_MEMBER( pio1_port_b_w );
|
||||||
|
DECLARE_WRITE8_MEMBER( pio1_port_b_dm_w );
|
||||||
DECLARE_READ8_MEMBER( pio2_port_a_r );
|
DECLARE_READ8_MEMBER( pio2_port_a_r );
|
||||||
DECLARE_WRITE8_MEMBER( pio2_port_b_w );
|
DECLARE_WRITE8_MEMBER( pio2_port_b_w );
|
||||||
DECLARE_INPUT_CHANGED_MEMBER(chessmst_sensor);
|
DECLARE_INPUT_CHANGED_MEMBER(chessmst_sensor);
|
||||||
DECLARE_INPUT_CHANGED_MEMBER(reset_button);
|
DECLARE_INPUT_CHANGED_MEMBER(reset_button);
|
||||||
|
DECLARE_INPUT_CHANGED_MEMBER(view_monitor_button);
|
||||||
|
DECLARE_WRITE_LINE_MEMBER( timer_555_w );
|
||||||
|
|
||||||
|
private:
|
||||||
|
void update_display();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -51,6 +73,13 @@ static ADDRESS_MAP_START(chessmst_mem, AS_PROGRAM, 8, chessmst_state)
|
|||||||
AM_RANGE( 0x3400, 0x3bff ) AM_RAM
|
AM_RANGE( 0x3400, 0x3bff ) AM_RAM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
static ADDRESS_MAP_START(chessmstdm, AS_PROGRAM, 8, chessmst_state)
|
||||||
|
ADDRESS_MAP_UNMAP_HIGH
|
||||||
|
AM_RANGE( 0x0000, 0x3fff ) AM_ROM
|
||||||
|
AM_RANGE( 0x4000, 0x7fff ) AM_DEVREAD("cartslot", generic_slot_device, read_rom)
|
||||||
|
AM_RANGE( 0x8000, 0x8bff ) AM_RAM
|
||||||
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START( chessmst_io , AS_IO, 8, chessmst_state)
|
static ADDRESS_MAP_START( chessmst_io , AS_IO, 8, chessmst_state)
|
||||||
ADDRESS_MAP_UNMAP_HIGH
|
ADDRESS_MAP_UNMAP_HIGH
|
||||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||||
@ -59,9 +88,31 @@ static ADDRESS_MAP_START( chessmst_io , AS_IO, 8, chessmst_state)
|
|||||||
AM_RANGE(0x08, 0x0b) AM_MIRROR(0xf0) AM_DEVREADWRITE("z80pio2", z80pio_device, read, write)
|
AM_RANGE(0x08, 0x0b) AM_MIRROR(0xf0) AM_DEVREADWRITE("z80pio2", z80pio_device, read, write)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
static ADDRESS_MAP_START( chessmstdm_io , AS_IO, 8, chessmst_state)
|
||||||
|
AM_IMPORT_FROM(chessmst_io)
|
||||||
|
AM_RANGE(0x4c, 0x4c) AM_WRITE(digits_w)
|
||||||
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
WRITE_LINE_MEMBER( chessmst_state::timer_555_w )
|
||||||
|
{
|
||||||
|
m_pia2->strobe_b(state);
|
||||||
|
m_pia2->data_b_write(m_matrix);
|
||||||
|
}
|
||||||
|
|
||||||
INPUT_CHANGED_MEMBER(chessmst_state::reset_button)
|
INPUT_CHANGED_MEMBER(chessmst_state::reset_button)
|
||||||
{
|
{
|
||||||
m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE);
|
m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE);
|
||||||
|
machine_reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
INPUT_CHANGED_MEMBER(chessmst_state::view_monitor_button)
|
||||||
|
{
|
||||||
|
// pressing both VIEW and MONITOR buttons causes a reset
|
||||||
|
if ((m_extra->read() & 0x03) == 0x03)
|
||||||
|
{
|
||||||
|
m_maincpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE);
|
||||||
|
machine_reset();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
INPUT_CHANGED_MEMBER(chessmst_state::chessmst_sensor)
|
INPUT_CHANGED_MEMBER(chessmst_state::chessmst_sensor)
|
||||||
@ -77,93 +128,112 @@ INPUT_CHANGED_MEMBER(chessmst_state::chessmst_sensor)
|
|||||||
/* Input ports */
|
/* Input ports */
|
||||||
static INPUT_PORTS_START( chessmst )
|
static INPUT_PORTS_START( chessmst )
|
||||||
PORT_START("COL_A")
|
PORT_START("COL_A")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 0)
|
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 0)
|
||||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 1)
|
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 1)
|
||||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 2)
|
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 2)
|
||||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 3)
|
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 3)
|
||||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 4)
|
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 4)
|
||||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 5)
|
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 5)
|
||||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 6)
|
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 6)
|
||||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 7)
|
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 7)
|
||||||
PORT_START("COL_B")
|
PORT_START("COL_B")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 8)
|
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 8)
|
||||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 9)
|
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 9)
|
||||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 10)
|
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 10)
|
||||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 11)
|
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 11)
|
||||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 12)
|
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 12)
|
||||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 13)
|
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 13)
|
||||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 14)
|
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 14)
|
||||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 15)
|
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 15)
|
||||||
PORT_START("COL_C")
|
PORT_START("COL_C")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 16)
|
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 16)
|
||||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 17)
|
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 17)
|
||||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 18)
|
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 18)
|
||||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 19)
|
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 19)
|
||||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 20)
|
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 20)
|
||||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 21)
|
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 21)
|
||||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 22)
|
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 22)
|
||||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 23)
|
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 23)
|
||||||
PORT_START("COL_D")
|
PORT_START("COL_D")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 24)
|
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 24)
|
||||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 25)
|
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 25)
|
||||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 26)
|
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 26)
|
||||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 27)
|
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 27)
|
||||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 28)
|
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 28)
|
||||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 29)
|
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 29)
|
||||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 30)
|
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 30)
|
||||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 31)
|
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 31)
|
||||||
PORT_START("COL_E")
|
PORT_START("COL_E")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 32)
|
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 32)
|
||||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 33)
|
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 33)
|
||||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 34)
|
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 34)
|
||||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 35)
|
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 35)
|
||||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 36)
|
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 36)
|
||||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 37)
|
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 37)
|
||||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 38)
|
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 38)
|
||||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 39)
|
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 39)
|
||||||
PORT_START("COL_F")
|
PORT_START("COL_F")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 40)
|
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 40)
|
||||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 41)
|
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 41)
|
||||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 42)
|
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 42)
|
||||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 43)
|
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 43)
|
||||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 44)
|
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 44)
|
||||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 45)
|
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 45)
|
||||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 46)
|
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 46)
|
||||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 47)
|
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 47)
|
||||||
PORT_START("COL_G")
|
PORT_START("COL_G")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 48)
|
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 48)
|
||||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 49)
|
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 49)
|
||||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 50)
|
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 50)
|
||||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 51)
|
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 51)
|
||||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 52)
|
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 52)
|
||||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 53)
|
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 53)
|
||||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 54)
|
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 54)
|
||||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 55)
|
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 55)
|
||||||
PORT_START("COL_H")
|
PORT_START("COL_H")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 56)
|
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 56)
|
||||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 57)
|
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 57)
|
||||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 58)
|
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 58)
|
||||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 59)
|
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 59)
|
||||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 60)
|
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 60)
|
||||||
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 61)
|
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 61)
|
||||||
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 62)
|
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 62)
|
||||||
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 63)
|
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, chessmst_sensor, 63)
|
||||||
|
|
||||||
PORT_START("BUTTONS")
|
PORT_START("BUTTONS")
|
||||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Hint [7]") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_H)
|
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Hint [7]") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_H)
|
||||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Random [6]") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_R)
|
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Random [6]") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_R)
|
||||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Referee [5]") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_F)
|
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Referee [5]") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_F)
|
||||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Selfplay [4]") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_S)
|
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Selfplay [4]") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_S)
|
||||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board [3]") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_B)
|
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board [3]") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_B)
|
||||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Color [2]") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_C)
|
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Color [2]") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_C)
|
||||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Level [1]") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_L)
|
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Level [1]") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_L)
|
||||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("New Game [0]") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_ENTER)
|
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("New Game [0]") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_ENTER)
|
||||||
|
|
||||||
PORT_START("EXTRA")
|
PORT_START("EXTRA")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Halt") PORT_CODE(KEYCODE_F2) PORT_WRITE_LINE_DEVICE_MEMBER("z80pio1", z80pio_device, strobe_a) // -> PIO(1) ASTB pin
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Halt") PORT_CODE(KEYCODE_F2) PORT_WRITE_LINE_DEVICE_MEMBER("z80pio1", z80pio_device, strobe_a) // -> PIO(1) ASTB pin
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Reset") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, reset_button, 0) // -> Z80 RESET pin
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Reset") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, reset_button, 0) // -> Z80 RESET pin
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
static INPUT_PORTS_START( chessmstdm )
|
||||||
|
PORT_INCLUDE(chessmst)
|
||||||
|
|
||||||
|
PORT_MODIFY("BUTTONS")
|
||||||
|
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Move Fore") PORT_CODE(KEYCODE_RIGHT)
|
||||||
|
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Move Back") PORT_CODE(KEYCODE_LEFT)
|
||||||
|
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Board") PORT_CODE(KEYCODE_B)
|
||||||
|
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Match / Time") PORT_CODE(KEYCODE_M)
|
||||||
|
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Parameter / Information") PORT_CODE(KEYCODE_I)
|
||||||
|
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Selection / Dialogue") PORT_CODE(KEYCODE_S)
|
||||||
|
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Function / Notation") PORT_CODE(KEYCODE_F)
|
||||||
|
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER)
|
||||||
|
|
||||||
|
PORT_MODIFY("EXTRA")
|
||||||
|
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Monitor") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, view_monitor_button, 0)
|
||||||
|
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("View") PORT_CODE(KEYCODE_F2) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, view_monitor_button, 0)
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
void chessmst_state::machine_reset()
|
void chessmst_state::machine_reset()
|
||||||
{
|
{
|
||||||
//reset all sensors
|
//reset all sensors
|
||||||
@ -174,6 +244,23 @@ void chessmst_state::machine_reset()
|
|||||||
m_sensor[i+0] = m_sensor[i+1] = m_sensor[i+6] = m_sensor[i+7] = 0;
|
m_sensor[i+0] = m_sensor[i+1] = m_sensor[i+6] = m_sensor[i+7] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void chessmst_state::update_display()
|
||||||
|
{
|
||||||
|
for(int i=0; i<4; i++)
|
||||||
|
{
|
||||||
|
if (BIT(m_digit_matrix, i))
|
||||||
|
output().set_indexed_value("digit", i, BITSWAP16(m_digit, 3,5,12,10,14,1,2,13,8,6,11,15,7,9,4,0) | (m_digit_dot << 16));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITE8_MEMBER( chessmst_state::digits_w )
|
||||||
|
{
|
||||||
|
m_digit = (m_digit << 4) | (data & 0x0f);
|
||||||
|
m_digit_matrix = (data >> 4) & 0x0f;
|
||||||
|
|
||||||
|
update_display();
|
||||||
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER( chessmst_state::pio1_port_a_w )
|
WRITE8_MEMBER( chessmst_state::pio1_port_a_w )
|
||||||
{
|
{
|
||||||
for (int row=1; row<=8; row++)
|
for (int row=1; row<=8; row++)
|
||||||
@ -211,6 +298,20 @@ WRITE8_MEMBER( chessmst_state::pio1_port_b_w )
|
|||||||
m_speaker->level_w(BIT(data, 6));
|
m_speaker->level_w(BIT(data, 6));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WRITE8_MEMBER( chessmst_state::pio1_port_b_dm_w )
|
||||||
|
{
|
||||||
|
m_matrix = (m_matrix & 0xff) | ((data & 0x04)<<6);
|
||||||
|
|
||||||
|
m_digit_dot = BIT(data, 4);
|
||||||
|
if (m_digit_dot)
|
||||||
|
update_display();
|
||||||
|
|
||||||
|
m_beeper->set_state(BIT(data, 3));
|
||||||
|
|
||||||
|
output().set_value("monitor_led", !BIT(data, 5));
|
||||||
|
output().set_value("playmode_led", !BIT(data, 6));
|
||||||
|
}
|
||||||
|
|
||||||
READ8_MEMBER( chessmst_state::pio2_port_a_r )
|
READ8_MEMBER( chessmst_state::pio2_port_a_r )
|
||||||
{
|
{
|
||||||
UINT8 data = 0x00;
|
UINT8 data = 0x00;
|
||||||
@ -218,24 +319,11 @@ READ8_MEMBER( chessmst_state::pio2_port_a_r )
|
|||||||
// The pieces position on the chessboard is identified by 64 Hall
|
// The pieces position on the chessboard is identified by 64 Hall
|
||||||
// sensors, which are in a 8x8 matrix with the corresponding LEDs.
|
// sensors, which are in a 8x8 matrix with the corresponding LEDs.
|
||||||
for (int i=0; i<8; i++)
|
for (int i=0; i<8; i++)
|
||||||
{
|
for (int j=0; j<8; j++)
|
||||||
if (m_matrix & 0x01)
|
{
|
||||||
data |= (m_sensor[0+i] ? (1<<i) : 0);
|
if (m_matrix & (1 << j))
|
||||||
if (m_matrix & 0x02)
|
data |= (m_sensor[j * 8 + i] ? (1 << i) : 0);
|
||||||
data |= (m_sensor[8+i] ? (1<<i) : 0);
|
}
|
||||||
if (m_matrix & 0x04)
|
|
||||||
data |= (m_sensor[16+i] ? (1<<i) : 0);
|
|
||||||
if (m_matrix & 0x08)
|
|
||||||
data |= (m_sensor[24+i] ? (1<<i) : 0);
|
|
||||||
if (m_matrix & 0x10)
|
|
||||||
data |= (m_sensor[32+i] ? (1<<i) : 0);
|
|
||||||
if (m_matrix & 0x20)
|
|
||||||
data |= (m_sensor[40+i] ? (1<<i) : 0);
|
|
||||||
if (m_matrix & 0x40)
|
|
||||||
data |= (m_sensor[48+i] ? (1<<i) : 0);
|
|
||||||
if (m_matrix & 0x80)
|
|
||||||
data |= (m_sensor[56+i] ? (1<<i) : 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_matrix & 0x100)
|
if (m_matrix & 0x100)
|
||||||
data |= ioport("BUTTONS")->read();
|
data |= ioport("BUTTONS")->read();
|
||||||
@ -255,6 +343,12 @@ static const z80_daisy_config chessmst_daisy_chain[] =
|
|||||||
{ nullptr }
|
{ nullptr }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const z80_daisy_config chessmstdm_daisy_chain[] =
|
||||||
|
{
|
||||||
|
{ "z80pio2" },
|
||||||
|
{ nullptr }
|
||||||
|
};
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( chessmst, chessmst_state )
|
static MACHINE_CONFIG_START( chessmst, chessmst_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
@ -305,10 +399,42 @@ static MACHINE_CONFIG_START( chessmsta, chessmst_state )
|
|||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
static MACHINE_CONFIG_START( chessmstdm, chessmst_state )
|
||||||
|
|
||||||
|
/* basic machine hardware */
|
||||||
|
MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/2) // U880 Z80 clone
|
||||||
|
MCFG_CPU_PROGRAM_MAP(chessmstdm)
|
||||||
|
MCFG_CPU_IO_MAP(chessmstdm_io)
|
||||||
|
MCFG_Z80_DAISY_CHAIN(chessmstdm_daisy_chain)
|
||||||
|
|
||||||
|
MCFG_DEVICE_ADD("z80pio1", Z80PIO, XTAL_8MHz/4)
|
||||||
|
MCFG_Z80PIO_OUT_PA_CB(WRITE8(chessmst_state, pio1_port_a_w))
|
||||||
|
MCFG_Z80PIO_OUT_PB_CB(WRITE8(chessmst_state, pio1_port_b_dm_w))
|
||||||
|
MCFG_Z80PIO_IN_PB_CB(IOPORT("EXTRA"))
|
||||||
|
|
||||||
|
MCFG_DEVICE_ADD("z80pio2", Z80PIO, XTAL_8MHz/4)
|
||||||
|
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||||
|
MCFG_Z80PIO_IN_PA_CB(READ8(chessmst_state, pio2_port_a_r))
|
||||||
|
MCFG_Z80PIO_OUT_PB_CB(WRITE8(chessmst_state, pio2_port_b_w))
|
||||||
|
|
||||||
|
MCFG_DEFAULT_LAYOUT(layout_chessmstdm)
|
||||||
|
|
||||||
|
MCFG_DEVICE_ADD("555_timer", CLOCK, 500) // from 555 timer
|
||||||
|
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(chessmst_state, timer_555_w))
|
||||||
|
|
||||||
|
/* sound hardware */
|
||||||
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
MCFG_SOUND_ADD("beeper", BEEP, 1000)
|
||||||
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||||
|
|
||||||
|
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "chessmstdm_cart")
|
||||||
|
MCFG_SOFTWARE_LIST_ADD("cart_list", "chessmstdm")
|
||||||
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
/* ROM definition */
|
/* ROM definition */
|
||||||
ROM_START( chessmst )
|
ROM_START( chessmst )
|
||||||
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
|
ROM_REGION( 0x2800, "maincpu", ROMREGION_ERASEFF )
|
||||||
ROM_LOAD( "056.bin", 0x0000, 0x0400, CRC(2b90e5d3) SHA1(c47445964b2e6cb11bd1f27e395cf980c97af196) )
|
ROM_LOAD( "056.bin", 0x0000, 0x0400, CRC(2b90e5d3) SHA1(c47445964b2e6cb11bd1f27e395cf980c97af196) )
|
||||||
ROM_LOAD( "057.bin", 0x0400, 0x0400, CRC(e666fc56) SHA1(3fa75b82cead81973bea94191a5c35f0acaaa0e6) )
|
ROM_LOAD( "057.bin", 0x0400, 0x0400, CRC(e666fc56) SHA1(3fa75b82cead81973bea94191a5c35f0acaaa0e6) )
|
||||||
ROM_LOAD( "058.bin", 0x0800, 0x0400, CRC(6a17fbec) SHA1(019051e93a5114477c50eaa87e1ff01b02eb404d) )
|
ROM_LOAD( "058.bin", 0x0800, 0x0400, CRC(6a17fbec) SHA1(019051e93a5114477c50eaa87e1ff01b02eb404d) )
|
||||||
@ -322,14 +448,20 @@ ROM_START( chessmst )
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
ROM_START( chessmsta )
|
ROM_START( chessmsta )
|
||||||
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
|
ROM_REGION( 0x2800, "maincpu", ROMREGION_ERASEFF )
|
||||||
ROM_LOAD( "2764.bin", 0x0000, 0x2000, CRC(6be28876) SHA1(fd7d77b471e7792aef3b2b3f7ff1de4cdafc94c9) )
|
ROM_LOAD( "2764.bin", 0x0000, 0x2000, CRC(6be28876) SHA1(fd7d77b471e7792aef3b2b3f7ff1de4cdafc94c9) )
|
||||||
ROM_LOAD( "u2616bm108.bin", 0x2000, 0x0800, CRC(6e69ace3) SHA1(e099b6b6cc505092f64b8d51ab9c70aa64f58f70) )
|
ROM_LOAD( "u2616bm108.bin", 0x2000, 0x0800, CRC(6e69ace3) SHA1(e099b6b6cc505092f64b8d51ab9c70aa64f58f70) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
ROM_START( chessmstdm )
|
||||||
|
ROM_REGION( 0x4000, "maincpu", ROMREGION_ERASEFF )
|
||||||
|
ROM_LOAD("CMD_bm002_bm201.bin", 0x0000, 0x4000, CRC(47858079) SHA1(eeae1126b514e4853d056690e72e7f5c6dfb3008))
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
/* Driver */
|
/* Driver */
|
||||||
|
|
||||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
|
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
|
||||||
COMP( 1984, chessmst, 0, 0, chessmst, chessmst, driver_device, 0, "VEB Mikroelektronik Erfurt", "Chess-Master (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
|
COMP( 1984, chessmst, 0, 0, chessmst, chessmst, driver_device, 0, "VEB Mikroelektronik Erfurt", "Chess-Master (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
|
||||||
COMP( 1984, chessmsta, chessmst, 0, chessmsta, chessmst, driver_device, 0, "VEB Mikroelektronik Erfurt", "Chess-Master (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
|
COMP( 1984, chessmsta, chessmst, 0, chessmsta, chessmst, driver_device, 0, "VEB Mikroelektronik Erfurt", "Chess-Master (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
COMP( 1987, chessmstdm,0, 0, chessmstdm, chessmstdm, driver_device, 0, "VEB Mikroelektronik Erfurt", "Chess-Master Diamond", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
|
||||||
|
@ -582,6 +582,29 @@ ROM_START( airtrix )
|
|||||||
ROM_PARAMETER( ":rom_board:segam2crypt:key", "291b02c7" )
|
ROM_PARAMETER( ":rom_board:segam2crypt:key", "291b02c7" )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
ROM_START( airtrixo )
|
||||||
|
ROM_REGION( 0x200000, "maincpu", 0)
|
||||||
|
HIKARU_BIOS
|
||||||
|
|
||||||
|
ROM_REGION( 0x800000, "user1", 0)
|
||||||
|
ROM_LOAD32_WORD( "epr-23601.ic29", 0x0000000, 0x0400000, CRC(e0c642cb) SHA1(f04f8e13cc46d462c79ecebcded7dee9b3500bdc) )
|
||||||
|
ROM_LOAD32_WORD( "epr-23602.ic30", 0x0000002, 0x0400000, CRC(fac11d21) SHA1(70b48a7e1ac4268fc09d96d6845c5a5099d4e301) )
|
||||||
|
|
||||||
|
/* ROM board using 128M TSOP48 MASKROMs */
|
||||||
|
ROM_REGION( 0x10000000, "user2", 0)
|
||||||
|
ROM_LOAD32_WORD( "mpr-23573.ic37" , 0x0000000, 0x1000000, CRC(e22a0734) SHA1(fc06d5972d285d09473874aaeb1efed2d19c8f36) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23577.ic38" , 0x0000002, 0x1000000, CRC(d007680d) SHA1(a795057c40b1851adb0e19e5dfb39e16206215bf) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23574.ic41" , 0x2000000, 0x1000000, CRC(a77034a5) SHA1(e6e8e2f747e7a972144436103741acfd7030fe84) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23578.ic42" , 0x2000002, 0x1000000, CRC(db612dd6) SHA1(e6813a1e16099094d67347027e058be582750ad7) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23575.ic45" , 0x4000000, 0x1000000, CRC(fe660f06) SHA1(73916f67d852df719fd65b1ed0f8b977c0c33390) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23579.ic46" , 0x4000002, 0x1000000, CRC(55e656d2) SHA1(5d0b26807cf915ab0ae5cc3a7c9dd6bec43da7b2) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23576.ic49" , 0x6000000, 0x1000000, CRC(c01e0329) SHA1(df1a3c83f338925d69912af56f675197e14e1793) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23580.ic50" , 0x6000002, 0x1000000, CRC(d260f39c) SHA1(e5cdf399defaaa7dbcee62f7ab64b898c28d8f7d) )
|
||||||
|
|
||||||
|
// 834-14149 2000 317-0294-COM Hikaru
|
||||||
|
ROM_PARAMETER( ":rom_board:segam2crypt:key", "291b02c7" )
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
ROM_START( pharrier )
|
ROM_START( pharrier )
|
||||||
ROM_REGION( 0x200000, "maincpu", 0)
|
ROM_REGION( 0x200000, "maincpu", 0)
|
||||||
@ -749,9 +772,43 @@ ROM_START( sgnascar )
|
|||||||
ROM_PARAMETER( ":rom_board:key", "56dedf33" )
|
ROM_PARAMETER( ":rom_board:key", "56dedf33" )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
ROM_START( sgnascaro )
|
||||||
|
ROM_REGION( 0x200000, "maincpu", 0)
|
||||||
|
HIKARU_BIOS
|
||||||
|
|
||||||
|
ROM_REGION( 0x2000000, "user1", 0)
|
||||||
|
ROM_LOAD32_WORD( "epr-23485.ic35", 0x000000, 0x400000, CRC(13b44fbf) SHA1(73416fa7b671ec5c96f0b084a427ff701bf6c399) )
|
||||||
|
ROM_LOAD32_WORD( "epr-23486.ic36", 0x000002, 0x400000, CRC(ac3acd19) SHA1(1ec96be0bfceb2f1f808d78b07425d32056fbde0) )
|
||||||
|
|
||||||
|
/* ROM board using 128M TSOP48 MASKROMs */
|
||||||
|
ROM_REGION( 0x10000000, "user2", ROMREGION_ERASE00)
|
||||||
|
ROM_LOAD32_WORD( "mpr-23469.ic19", 0x0000000, 0x1000000, CRC(89cbad8d) SHA1(e4f103b96a3a842a90182172ddcf3bc5dfe6cca8) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23473.ic20", 0x0000002, 0x1000000, CRC(977b87d6) SHA1(079eeebc6f9c60d0a016a46386bbe846d8a354da) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23470.ic21", 0x2000000, 0x1000000, CRC(faf4940f) SHA1(72fee9ea5b78da260ed99ebe80ca6300f62cdbd7) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23474.ic22", 0x2000002, 0x1000000, CRC(faf69ac5) SHA1(875c748151bf0e9cd73d86384665414b2f7b6f5a) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23471.ic23", 0x4000000, 0x1000000, CRC(a3aad8ac) SHA1(afc8f3d1546e50afab4f540d59c87fe27cfb2cdd) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23475.ic24", 0x4000002, 0x1000000, CRC(5f51597c) SHA1(02c0a5d463714082b7ebb2bec4d0f88aff186f82) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23472.ic25", 0x6000000, 0x1000000, CRC(2495f678) SHA1(94b3160aabaea0596855c38ab1b63b16b20f2bae) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23476.ic26", 0x6000002, 0x1000000, CRC(927cf31c) SHA1(7cab22a4113d92080a52e1d235bf075ce95f985f) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23477.ic27", 0x8000000, 0x1000000, CRC(b4b7c477) SHA1(bcbfe081d509f0b87c6685b9b6617ae146987fe7) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23481.ic28", 0x8000002, 0x1000000, CRC(27b8eb7d) SHA1(087b1ed13a3e2a0dbda82c454243214784429d24) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23478.ic29", 0xa000000, 0x1000000, CRC(1fac431c) SHA1(2e3903c8cfd55d414555a1d23ba3a97c335991b3) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23482.ic30", 0xa000002, 0x1000000, CRC(2e9a0420) SHA1(376d5f0b8274d741a702dc08da50ea5679991740) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23479.ic31", 0xc000000, 0x1000000, CRC(9704e393) SHA1(0cb1403f4a268def3ce88db42e55d89ca913e2a0) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23483.ic32", 0xc000002, 0x1000000, CRC(c37adebe) SHA1(e84f6d2cc364c743f7f3b73d8c8d0271952bb093) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23480.ic33", 0xe000000, 0x1000000, CRC(f517b8b3) SHA1(c04740adb612473c4c9f8186e7e93d2f73d1bb1a) )
|
||||||
|
ROM_LOAD32_WORD( "mpr-23484.ic34", 0xe000002, 0x1000000, CRC(2ebe1aa1) SHA1(16b39f7422da1a334dde27169c2949e1d95bddb3) )
|
||||||
|
|
||||||
|
// 317-0283-COM Actel A54SX32
|
||||||
|
// ID 0x4252
|
||||||
|
ROM_PARAMETER( ":rom_board:key", "56dedf33" )
|
||||||
|
ROM_END
|
||||||
|
|
||||||
GAME( 2000, hikaru, 0, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Hikaru Bios", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_IS_BIOS_ROOT )
|
GAME( 2000, hikaru, 0, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Hikaru Bios", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_IS_BIOS_ROOT )
|
||||||
GAME( 1999, braveff, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Brave Fire Fighters", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
|
GAME( 1999, braveff, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Brave Fire Fighters", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
|
||||||
GAME( 2000, airtrix, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Air Trix", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
|
GAME( 2000, airtrix, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Air Trix (Rev A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
|
||||||
GAME( 2000, sgnascar, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega / Electronic Arts", "NASCAR Racing", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
|
GAME( 2000, airtrixo, airtrix, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Air Trix (original)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
|
||||||
GAME( 2001, pharrier, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Planet Harriers", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
|
GAME( 2000, sgnascar, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega / Electronic Arts", "NASCAR Racing (Rev A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
|
||||||
|
GAME( 2000, sgnascaro,sgnascar, hikaru, hikaru, driver_device, 0, ROT0, "Sega / Electronic Arts", "NASCAR Racing (original)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
|
||||||
|
GAME( 2001, pharrier, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Planet Harriers (Rev A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
|
||||||
GAME( 2001, podrace, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Star Wars Pod Racer", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
|
GAME( 2001, podrace, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Star Wars Pod Racer", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
|
||||||
|
@ -320,10 +320,11 @@ WRITE8_MEMBER(homedata_state::mrokumei_sound_io_w)
|
|||||||
switch (offset & 0xff)
|
switch (offset & 0xff)
|
||||||
{
|
{
|
||||||
case 0x40:
|
case 0x40:
|
||||||
|
case 0x7f: // hourouki mirror
|
||||||
m_dac->write_signed8(data);
|
m_dac->write_signed8(data);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
logerror("%04x: I/O write to port %04x\n", space.device().safe_pc(), offset);
|
logerror("%04x: I/O write to port %04x %02x\n", space.device().safe_pc(), offset,data);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -557,8 +558,10 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( mrokumei_sound_map, AS_PROGRAM, 8, homedata_state )
|
static ADDRESS_MAP_START( mrokumei_sound_map, AS_PROGRAM, 8, homedata_state )
|
||||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||||
|
// TODO: might be that the entire area is sound_bank_w
|
||||||
AM_RANGE(0xfffc, 0xfffd) AM_WRITENOP /* stack writes happen here, but there's no RAM */
|
AM_RANGE(0xfffc, 0xfffd) AM_WRITENOP /* stack writes happen here, but there's no RAM */
|
||||||
AM_RANGE(0x8080, 0x8080) AM_WRITE(mrokumei_sound_bank_w)
|
AM_RANGE(0x8080, 0x8080) AM_WRITE(mrokumei_sound_bank_w)
|
||||||
|
AM_RANGE(0xffbf, 0xffbf) AM_WRITE(mrokumei_sound_bank_w) // hourouki mirror
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,8 +14,6 @@ Notes:
|
|||||||
necessarily mean anything.
|
necessarily mean anything.
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- Coin counters don't work correctly, because the register is overwritten by
|
|
||||||
other routines and the coin counter bits rapidly toggle between 0 and 1.
|
|
||||||
- running the sound CPU at the nominal clock rate, music stops working at the
|
- running the sound CPU at the nominal clock rate, music stops working at the
|
||||||
beginning of the game. This is kludged by overclocking the sound CPU. This
|
beginning of the game. This is kludged by overclocking the sound CPU. This
|
||||||
looks like a CPU communication timing issue however fiddling with the
|
looks like a CPU communication timing issue however fiddling with the
|
||||||
@ -121,9 +119,14 @@ WRITE8_MEMBER(jackal_state::jackal_rambank_w)
|
|||||||
if (data & 0x04)
|
if (data & 0x04)
|
||||||
popmessage("jackal_rambank_w %02x", data);
|
popmessage("jackal_rambank_w %02x", data);
|
||||||
|
|
||||||
machine().bookkeeping().coin_counter_w(0, data & 0x01);
|
// all revisions flips the coin counter bit between 1 -> 0 five times, causing the bookkeeping to report 5 coins inserted.
|
||||||
machine().bookkeeping().coin_counter_w(1, data & 0x02);
|
// most likely solution in HW is a f/f that disables coin counters when any of the other bits are enabled.
|
||||||
|
if((data & 0xfc) == 0)
|
||||||
|
{
|
||||||
|
machine().bookkeeping().coin_counter_w(0, data & 0x01);
|
||||||
|
machine().bookkeeping().coin_counter_w(1, data & 0x02);
|
||||||
|
}
|
||||||
|
|
||||||
m_spritebank = &rgn[((data & 0x08) << 13)];
|
m_spritebank = &rgn[((data & 0x08) << 13)];
|
||||||
m_rambank = &rgn[((data & 0x10) << 12)];
|
m_rambank = &rgn[((data & 0x10) << 12)];
|
||||||
membank("bank1")->set_entry((data & 0x20) ? 1 : 0);
|
membank("bank1")->set_entry((data & 0x20) ? 1 : 0);
|
||||||
|
@ -4038,12 +4038,12 @@ static MACHINE_CONFIG_START( gakusai, metro_state )
|
|||||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||||
|
|
||||||
MCFG_OKIM6295_ADD("oki", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
|
MCFG_OKIM6295_ADD("oki", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25)
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz)
|
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.90)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 2.00)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.90)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 2.00)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -4077,12 +4077,12 @@ static MACHINE_CONFIG_START( gakusai2, metro_state )
|
|||||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||||
|
|
||||||
MCFG_OKIM6295_ADD("oki", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
|
MCFG_OKIM6295_ADD("oki", 2112000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25)
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz)
|
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.90)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 2.00)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.90)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 2.00)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
|
@ -281,7 +281,7 @@ READ32_MEMBER(mpu5_state::mpu5_mem_r)
|
|||||||
{
|
{
|
||||||
int pc = space.device().safe_pc();
|
int pc = space.device().safe_pc();
|
||||||
int addr = offset *4;
|
int addr = offset *4;
|
||||||
int cs = m68340_get_cs(m_maincpu, addr);
|
int cs = m_maincpu->get_cs(addr);
|
||||||
|
|
||||||
switch ( cs )
|
switch ( cs )
|
||||||
{
|
{
|
||||||
@ -477,7 +477,7 @@ WRITE32_MEMBER(mpu5_state::mpu5_mem_w)
|
|||||||
{
|
{
|
||||||
int pc = space.device().safe_pc();
|
int pc = space.device().safe_pc();
|
||||||
int addr = offset *4;
|
int addr = offset *4;
|
||||||
int cs = m68340_get_cs(m_maincpu, addr);
|
int cs = m_maincpu->get_cs(addr);
|
||||||
|
|
||||||
switch ( cs )
|
switch ( cs )
|
||||||
{
|
{
|
||||||
|
@ -9887,7 +9887,7 @@ GAME( 2003, puyofevp, naomi, naomim1, naomi, naomi_state, naomi, ROT0, "Sega", "
|
|||||||
/* Atomiswave */
|
/* Atomiswave */
|
||||||
GAME( 2001, awbios, 0, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy", "Atomiswave Bios", GAME_FLAGS|MACHINE_IS_BIOS_ROOT )
|
GAME( 2001, awbios, 0, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy", "Atomiswave Bios", GAME_FLAGS|MACHINE_IS_BIOS_ROOT )
|
||||||
|
|
||||||
GAME( 2003, maxspeed, awbios, aw1c, aw1w, naomi_state, atomiswave, ROT0, "Sammy", "Maximum Speed", GAME_FLAGS )
|
GAME( 2003, maxspeed, awbios, aw1c, aw1w, naomi_state, atomiswave, ROT0, "SIMS / Sammy", "Maximum Speed", GAME_FLAGS )
|
||||||
GAME( 2003, sprtshot, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy USA", "Sports Shooting USA", GAME_FLAGS )
|
GAME( 2003, sprtshot, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy USA", "Sports Shooting USA", GAME_FLAGS )
|
||||||
GAME( 2003, ggx15, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Arc System Works / Sammy", "Guilty Gear X ver. 1.5", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING )
|
GAME( 2003, ggx15, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Arc System Works / Sammy", "Guilty Gear X ver. 1.5", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING )
|
||||||
GAME( 2003, demofist, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Polygon Magic / Dimps", "Demolish Fist", GAME_FLAGS )
|
GAME( 2003, demofist, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Polygon Magic / Dimps", "Demolish Fist", GAME_FLAGS )
|
||||||
@ -9898,10 +9898,10 @@ GAME( 2003, sushibar, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "S
|
|||||||
GAME( 2004, dirtypig, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy", "Dirty Pigskin Football", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING )
|
GAME( 2004, dirtypig, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy", "Dirty Pigskin Football", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING )
|
||||||
GAME( 2004, rumblef, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy / Dimps", "The Rumble Fish", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING )
|
GAME( 2004, rumblef, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy / Dimps", "The Rumble Fish", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING )
|
||||||
GAME( 2004, rumblefp, rumblef, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy / Dimps", "The Rumble Fish (prototype)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING )
|
GAME( 2004, rumblefp, rumblef, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy / Dimps", "The Rumble Fish (prototype)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING )
|
||||||
GAME( 2004, rangrmsn, awbios, aw2c, aw1w, naomi_state, atomiswave, ROT0, "Sammy", "Ranger Mission", GAME_FLAGS )
|
GAME( 2004, rangrmsn, awbios, aw2c, aw1w, naomi_state, atomiswave, ROT0, "RIZ Inc./ Sammy", "Ranger Mission", GAME_FLAGS )
|
||||||
GAME( 2004, salmankt, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy", "Salary Man Kintarou", GAME_FLAGS )
|
GAME( 2004, salmankt, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Yuki Enterprise / Sammy", "Net Select: Salaryman Kintaro", GAME_FLAGS )
|
||||||
GAME( 2004, ftspeed, awbios, aw1c, aw1w, naomi_state, atomiswave, ROT0, "Sammy", "Faster Than Speed", GAME_FLAGS )
|
GAME( 2004, ftspeed, awbios, aw1c, aw1w, naomi_state, atomiswave, ROT0, "Sammy", "Faster Than Speed", GAME_FLAGS )
|
||||||
GAME( 2005, vfurlong, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy", "Net Select Keiba Victory Furlong", GAME_FLAGS )
|
GAME( 2005, vfurlong, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Progress / Sammy", "Net Select Horse Racing: Victory Furlong", GAME_FLAGS )
|
||||||
GAME( 2005, rumblef2, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy / Dimps", "The Rumble Fish 2", GAME_FLAGS )
|
GAME( 2005, rumblef2, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy / Dimps", "The Rumble Fish 2", GAME_FLAGS )
|
||||||
GAME( 2005, rumblf2p, rumblef2, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy / Dimps", "The Rumble Fish 2 (prototype)", GAME_FLAGS )
|
GAME( 2005, rumblf2p, rumblef2, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy / Dimps", "The Rumble Fish 2 (prototype)", GAME_FLAGS )
|
||||||
GAME( 2005, anmlbskt, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT270, "MOSS / Sammy", "Animal Basket", GAME_FLAGS )
|
GAME( 2005, anmlbskt, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT270, "MOSS / Sammy", "Animal Basket", GAME_FLAGS )
|
||||||
|
@ -55,7 +55,6 @@ TODO:
|
|||||||
|
|
||||||
- Hacha Mecha Fighter: mcu simulation is wrong/incorrect (see notes).
|
- Hacha Mecha Fighter: mcu simulation is wrong/incorrect (see notes).
|
||||||
|
|
||||||
- Music timing in nouryoku is a little off.
|
|
||||||
- In Bioship, there's an occasional flicker of one of the sprites composing big
|
- In Bioship, there's an occasional flicker of one of the sprites composing big
|
||||||
ships. Increasing CPU speed from 12 to 16 MHz improved it, but it's still not
|
ships. Increasing CPU speed from 12 to 16 MHz improved it, but it's still not
|
||||||
100% fixed. (the CPU speed has been verified to be 10Mhz??)
|
100% fixed. (the CPU speed has been verified to be 10Mhz??)
|
||||||
|
@ -206,7 +206,7 @@ public:
|
|||||||
READ32_MEMBER(pluto5_state::pluto5_mem_r)
|
READ32_MEMBER(pluto5_state::pluto5_mem_r)
|
||||||
{
|
{
|
||||||
int pc = space.device().safe_pc();
|
int pc = space.device().safe_pc();
|
||||||
int cs = m68340_get_cs(m_maincpu, offset * 4);
|
int cs = m_maincpu->get_cs(offset * 4);
|
||||||
|
|
||||||
switch ( cs )
|
switch ( cs )
|
||||||
{
|
{
|
||||||
@ -224,7 +224,7 @@ READ32_MEMBER(pluto5_state::pluto5_mem_r)
|
|||||||
WRITE32_MEMBER(pluto5_state::pluto5_mem_w)
|
WRITE32_MEMBER(pluto5_state::pluto5_mem_w)
|
||||||
{
|
{
|
||||||
int pc = space.device().safe_pc();
|
int pc = space.device().safe_pc();
|
||||||
int cs = m68340_get_cs(m_maincpu, offset * 4);
|
int cs = m_maincpu->get_cs(offset * 4);
|
||||||
|
|
||||||
switch ( cs )
|
switch ( cs )
|
||||||
{
|
{
|
||||||
|
@ -354,6 +354,9 @@ Notes:
|
|||||||
#define FRC_CLOCK_MODE0 (MASTER_CLOCK/2)/24 // /16 according to Charles
|
#define FRC_CLOCK_MODE0 (MASTER_CLOCK/2)/24 // /16 according to Charles
|
||||||
#define FRC_CLOCK_MODE1 (MASTER_CLOCK/2)/1536 // /1024 according to Charles, but /1536 sounds better
|
#define FRC_CLOCK_MODE1 (MASTER_CLOCK/2)/1536 // /1024 according to Charles, but /1536 sounds better
|
||||||
|
|
||||||
|
#define FDC_LEGACY_LOG 0
|
||||||
|
#define FDC_LOG(x) do { if (FDC_LEGACY_LOG) logerror x; } while (0)
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
IRQ_YM2151 = 1,
|
IRQ_YM2151 = 1,
|
||||||
IRQ_TIMER = 2,
|
IRQ_TIMER = 2,
|
||||||
@ -394,18 +397,18 @@ READ16_MEMBER( segas24_state::fdc_r )
|
|||||||
int res = fdc_data;
|
int res = fdc_data;
|
||||||
if(fdc_drq) {
|
if(fdc_drq) {
|
||||||
fdc_span--;
|
fdc_span--;
|
||||||
// logerror("Read %02x (%d)\n", res, fdc_span);
|
// FDC_LOG(("Read %02x (%d)\n", res, fdc_span));
|
||||||
if(fdc_span) {
|
if(fdc_span) {
|
||||||
fdc_pt++;
|
fdc_pt++;
|
||||||
fdc_data = *fdc_pt;
|
fdc_data = *fdc_pt;
|
||||||
} else {
|
} else {
|
||||||
logerror("FDC: transfert complete\n");
|
FDC_LOG(("FDC: transfert complete\n"));
|
||||||
fdc_drq = 0;
|
fdc_drq = 0;
|
||||||
fdc_status = 0;
|
fdc_status = 0;
|
||||||
fdc_irq = 1;
|
fdc_irq = 1;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
logerror("FDC: data read with drq down\n");
|
FDC_LOG(("FDC: data read with drq down\n"));
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -423,19 +426,19 @@ WRITE16_MEMBER( segas24_state::fdc_w )
|
|||||||
fdc_irq = 0;
|
fdc_irq = 0;
|
||||||
switch(data >> 4) {
|
switch(data >> 4) {
|
||||||
case 0x0:
|
case 0x0:
|
||||||
logerror("FDC: Restore\n");
|
FDC_LOG(("FDC: Restore\n"));
|
||||||
fdc_phys_track = fdc_track = 0;
|
fdc_phys_track = fdc_track = 0;
|
||||||
fdc_irq = 1;
|
fdc_irq = 1;
|
||||||
fdc_status = 4;
|
fdc_status = 4;
|
||||||
break;
|
break;
|
||||||
case 0x1:
|
case 0x1:
|
||||||
logerror("FDC: Seek %d\n", fdc_data);
|
FDC_LOG(("FDC: Seek %d\n", fdc_data));
|
||||||
fdc_phys_track = fdc_track = fdc_data;
|
fdc_phys_track = fdc_track = fdc_data;
|
||||||
fdc_irq = 1;
|
fdc_irq = 1;
|
||||||
fdc_status = fdc_track ? 0 : 4;
|
fdc_status = fdc_track ? 0 : 4;
|
||||||
break;
|
break;
|
||||||
case 0x9:
|
case 0x9:
|
||||||
logerror("Read multiple [%02x] %d..%d side %d track %d\n", data, fdc_sector, fdc_sector+fdc_data-1, data & 8 ? 1 : 0, fdc_phys_track);
|
FDC_LOG(("Read multiple [%02x] %d..%d side %d track %d\n", data, fdc_sector, fdc_sector+fdc_data-1, data & 8 ? 1 : 0, fdc_phys_track));
|
||||||
fdc_pt = memregion("floppy")->base() + track_size*(2*fdc_phys_track+(data & 8 ? 1 : 0));
|
fdc_pt = memregion("floppy")->base() + track_size*(2*fdc_phys_track+(data & 8 ? 1 : 0));
|
||||||
fdc_span = track_size;
|
fdc_span = track_size;
|
||||||
fdc_status = 3;
|
fdc_status = 3;
|
||||||
@ -443,14 +446,14 @@ WRITE16_MEMBER( segas24_state::fdc_w )
|
|||||||
fdc_data = *fdc_pt;
|
fdc_data = *fdc_pt;
|
||||||
break;
|
break;
|
||||||
case 0xb:
|
case 0xb:
|
||||||
logerror("Write multiple [%02x] %d..%d side %d track %d\n", data, fdc_sector, fdc_sector+fdc_data-1, data & 8 ? 1 : 0, fdc_phys_track);
|
FDC_LOG(("Write multiple [%02x] %d..%d side %d track %d\n", data, fdc_sector, fdc_sector+fdc_data-1, data & 8 ? 1 : 0, fdc_phys_track));
|
||||||
fdc_pt = memregion("floppy")->base() + track_size*(2*fdc_phys_track+(data & 8 ? 1 : 0));
|
fdc_pt = memregion("floppy")->base() + track_size*(2*fdc_phys_track+(data & 8 ? 1 : 0));
|
||||||
fdc_span = track_size;
|
fdc_span = track_size;
|
||||||
fdc_status = 3;
|
fdc_status = 3;
|
||||||
fdc_drq = 1;
|
fdc_drq = 1;
|
||||||
break;
|
break;
|
||||||
case 0xd:
|
case 0xd:
|
||||||
logerror("FDC: Forced interrupt\n");
|
FDC_LOG(("FDC: Forced interrupt\n"));
|
||||||
fdc_span = 0;
|
fdc_span = 0;
|
||||||
fdc_drq = 0;
|
fdc_drq = 0;
|
||||||
fdc_irq = data & 1;
|
fdc_irq = data & 1;
|
||||||
@ -458,38 +461,38 @@ WRITE16_MEMBER( segas24_state::fdc_w )
|
|||||||
break;
|
break;
|
||||||
case 0xf:
|
case 0xf:
|
||||||
if(data == 0xfe)
|
if(data == 0xfe)
|
||||||
logerror("FDC: Assign mode %02x\n", fdc_data);
|
FDC_LOG(("FDC: Assign mode %02x\n", fdc_data));
|
||||||
else if(data == 0xfd)
|
else if(data == 0xfd)
|
||||||
logerror("FDC: Assign parameter %02x\n", fdc_data);
|
FDC_LOG(("FDC: Assign parameter %02x\n", fdc_data));
|
||||||
else
|
else
|
||||||
logerror("FDC: Unknown command %02x\n", data);
|
FDC_LOG(("FDC: Unknown command %02x\n", data));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
logerror("FDC: Unknown command %02x\n", data);
|
FDC_LOG(("FDC: Unknown command %02x\n", data));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
logerror("FDC: Track register %02x\n", data);
|
FDC_LOG(("FDC: Track register %02x\n", data));
|
||||||
fdc_track = data;
|
fdc_track = data;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
logerror("FDC: Sector register %02x\n", data);
|
FDC_LOG(("FDC: Sector register %02x\n", data));
|
||||||
fdc_sector = data;
|
fdc_sector = data;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if(fdc_drq) {
|
if(fdc_drq) {
|
||||||
// logerror("Write %02x (%d)\n", data, fdc_span);
|
// FDC_LOG("Write %02x (%d)\n", data, fdc_span);
|
||||||
*fdc_pt++ = data;
|
*fdc_pt++ = data;
|
||||||
fdc_span--;
|
fdc_span--;
|
||||||
if(!fdc_span) {
|
if(!fdc_span) {
|
||||||
logerror("FDC: transfert complete\n");
|
FDC_LOG(("FDC: transfert complete\n"));
|
||||||
fdc_drq = 0;
|
fdc_drq = 0;
|
||||||
fdc_status = 0;
|
fdc_status = 0;
|
||||||
fdc_irq = 1;
|
fdc_irq = 1;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
logerror("FDC: Data register %02x\n", data);
|
FDC_LOG(("FDC: Data register %02x\n", data));
|
||||||
fdc_data = data;
|
fdc_data = data;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -507,7 +510,7 @@ READ16_MEMBER( segas24_state::fdc_status_r )
|
|||||||
WRITE16_MEMBER( segas24_state::fdc_ctrl_w )
|
WRITE16_MEMBER( segas24_state::fdc_ctrl_w )
|
||||||
{
|
{
|
||||||
if(ACCESSING_BITS_0_7)
|
if(ACCESSING_BITS_0_7)
|
||||||
logerror("FDC control %02x\n", data & 0xff);
|
FDC_LOG(("FDC control %02x\n", data & 0xff));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,20 +22,37 @@ Notes:
|
|||||||
5P and 5M are the Sprite framebuffer
|
5P and 5M are the Sprite framebuffer
|
||||||
|
|
||||||
Super Qix:
|
Super Qix:
|
||||||
- The sq07.108 ROM came from a bootleg where the 8751 MCU was replaced by a
|
- The sq07.ic108 ROM came from a bootleg where the 8751 MCU was replaced by an
|
||||||
model using external ROM. The ROM was bad (bit 3 was stuck high). It was
|
8031 MCU plus an external ROM (i.e. the sqixb1 romset). The 8031 ROM was bad
|
||||||
recovered by carefully checking the disassembly but there might still be
|
(bit 3 was stuck high). It was originally recovered by carefully checking
|
||||||
some mistakes.
|
the disassembly, and this repair was later verified from another dump to be
|
||||||
The bootleg MCU code is different from the original; it was modified by the
|
correct. The majority of the bootleg 8031 MCU code matches the decapped
|
||||||
bootleggers to avoid use of port 2.
|
sqixu b03-03.l2 mcu code, implying the sq07.ic108 8031 MCU code ROM was
|
||||||
|
derived from code dumped from an original Taito b03-03.l2 8751 MCU somehow.
|
||||||
|
The bootleg MCU code is different from the original b03-03.l2 MCU since
|
||||||
|
an 8031 when running in external ROM mode cannot use ports 0 or 2, hence
|
||||||
|
the code was extensively patched by the bootleggers to avoid use of those
|
||||||
|
ports, by adding an additional multiplexer to port 1, and moving various
|
||||||
|
read and write pins around.
|
||||||
|
An important note about the sqixb1 bootleg pcb: the SOCKET on the pcb for
|
||||||
|
sq07.ic108 is populated backwards compared to the way the ROM will fit into
|
||||||
|
it! This is probably the cause of the bad bit 3 in the original dump in MAME
|
||||||
|
(due to someone inserting and powering the chip backwards) and is definitely
|
||||||
|
the cause of at least one other ROM failure during a repair. Be aware of
|
||||||
|
this, if you find or own one of these PCBs!
|
||||||
|
|
||||||
- The MCU sends some ID to the Z80 on startup, but the Z80 happily ignores it.
|
- The MCU sends some ID to the Z80 on startup, but the Z80 happily ignores it.
|
||||||
This happens in all sets. There appears to be code that would check part of
|
This happens in all sets. There appears to be code that would check part of
|
||||||
the MCU init sequence ($5973 onwards), but it doesn't seem to be called.
|
the MCU init sequence ($5973 onwards), but it doesn't seem to be called.
|
||||||
|
|
||||||
- sqixb1 might be an earlier version because there is a bug with coin lockout:
|
- sqixb1 might be based on an earlier version because there is a bug with coin
|
||||||
it is activated after inesrting 10 coins instead of 9. sqix doesn't have
|
lockout: it is activated after inserting 10 coins instead of 9.
|
||||||
that bug and also inverts the coin lockout output.
|
sqix doesn't have that bug and also inverts the coin lockout output compared
|
||||||
|
to the bootleg.
|
||||||
|
The older sqixr1 non-bootleg set does not have the 10 coin lockout bug
|
||||||
|
either, so it is possible that the bootleggers introduced it themselves, or
|
||||||
|
the bootleg is based on some sort of early (location test?) set (older than
|
||||||
|
the sqixr1 set) which we don't have a dump of.
|
||||||
|
|
||||||
- sqixb2 is a bootleg of sqixb1, with the MCU removed.
|
- sqixb2 is a bootleg of sqixb1, with the MCU removed.
|
||||||
|
|
||||||
@ -210,11 +227,26 @@ The MCU acts this way:
|
|||||||
|
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
|
CUSTOM_INPUT_MEMBER(superqix_state::superqix_semaphore_input_r) // similar to pbillian_semaphore_input_r below, but reverse order and polarity
|
||||||
|
{
|
||||||
|
int res = 0;
|
||||||
|
|
||||||
|
if (m_MCUHasWritten)
|
||||||
|
res |= 0x01;
|
||||||
|
|
||||||
|
if (m_Z80HasWritten)
|
||||||
|
res |= 0x02;
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
READ8_MEMBER(superqix_state::in4_mcu_r)
|
READ8_MEMBER(superqix_state::in4_mcu_r)
|
||||||
{
|
{
|
||||||
// logerror("%04x: in4_mcu_r\n",space.device().safe_pc());
|
// logerror("%04x: in4_mcu_r\n",space.device().safe_pc());
|
||||||
return ioport("P2")->read() | (m_MCUHasWritten << 6) | (m_Z80HasWritten << 7);
|
//logerror("%04x: ay_port_b_r and MCUHasWritten is %d and Z80HasWritten is %d: ",static_cast<device_t &>(*m_maincpu).safe_pc(),m_MCUHasWritten, m_Z80HasWritten);
|
||||||
|
UINT8 temp = ioport("P2")->read();
|
||||||
|
//logerror("returning %02X\n", temp);
|
||||||
|
return temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
READ8_MEMBER(superqix_state::sqix_from_mcu_r)
|
READ8_MEMBER(superqix_state::sqix_from_mcu_r)
|
||||||
@ -225,7 +257,15 @@ READ8_MEMBER(superqix_state::sqix_from_mcu_r)
|
|||||||
|
|
||||||
TIMER_CALLBACK_MEMBER(superqix_state::mcu_acknowledge_callback)
|
TIMER_CALLBACK_MEMBER(superqix_state::mcu_acknowledge_callback)
|
||||||
{
|
{
|
||||||
m_Z80HasWritten = 1;
|
/* if we're on a set with no mcu, namely sqixb2, perestro or perestrof,
|
||||||
|
do not set the mcu flags since at least a few checks in sqixb2 were
|
||||||
|
not patched out by the bootleggers nor the read from the
|
||||||
|
mcu_acknowledge_r register which sets the m_Z80HasWritten semaphore,
|
||||||
|
hence the semaphore flags must both be hard-wired inactive on the pcb,
|
||||||
|
or else it will never boot to the title screen.
|
||||||
|
perestro and perestrof seem to completely ignore the semaphores.
|
||||||
|
*/
|
||||||
|
if (m_mcu.found()) m_Z80HasWritten = 1; // only set this if we have an actual mcu
|
||||||
m_fromZ80 = m_fromZ80pending;
|
m_fromZ80 = m_fromZ80pending;
|
||||||
// logerror("Z80->MCU %02x\n",m_fromZ80);
|
// logerror("Z80->MCU %02x\n",m_fromZ80);
|
||||||
}
|
}
|
||||||
@ -309,12 +349,12 @@ READ8_MEMBER(superqix_state::bootleg_mcu_p3_r)
|
|||||||
|
|
||||||
READ8_MEMBER(superqix_state::sqix_system_status_r)
|
READ8_MEMBER(superqix_state::sqix_system_status_r)
|
||||||
{
|
{
|
||||||
return ioport("SYSTEM")->read() | (m_MCUHasWritten << 6) | (m_Z80HasWritten << 7);
|
return ioport("SYSTEM")->read();
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(superqix_state::sqixu_mcu_p2_w)
|
WRITE8_MEMBER(superqix_state::sqixu_mcu_p2_w)
|
||||||
{
|
{
|
||||||
// bit 0 = unknown (clocked often), watchdog?
|
// bit 0 = enable latch for bits 1-6 below on high level or falling edge (doesn't particularly matter which, either one works)
|
||||||
|
|
||||||
// bit 1 = coin cointer 1
|
// bit 1 = coin cointer 1
|
||||||
machine().bookkeeping().coin_counter_w(0,data & 2);
|
machine().bookkeeping().coin_counter_w(0,data & 2);
|
||||||
@ -812,7 +852,7 @@ READ8_MEMBER(superqix_state::hotsmash_Z80_mcu_r)
|
|||||||
return m_fromMCU;
|
return m_fromMCU;
|
||||||
}
|
}
|
||||||
|
|
||||||
CUSTOM_INPUT_MEMBER(superqix_state::superqix_semaphore_input_r)
|
CUSTOM_INPUT_MEMBER(superqix_state::pbillian_semaphore_input_r)
|
||||||
{
|
{
|
||||||
int res = 0;
|
int res = 0;
|
||||||
/* bit 0x40 is PROBABLY latch 1 on 74ls74.7c, is high if m_Z80HasWritten is clear */
|
/* bit 0x40 is PROBABLY latch 1 on 74ls74.7c, is high if m_Z80HasWritten is clear */
|
||||||
@ -1006,12 +1046,12 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
/* I8751 memory handlers */
|
/* I8751 memory handlers */
|
||||||
|
|
||||||
static ADDRESS_MAP_START( bootleg_mcu_io_map, AS_IO, 8, superqix_state )
|
static ADDRESS_MAP_START( sqix_8031_mcu_io_map, AS_IO, 8, superqix_state )
|
||||||
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE(bootleg_mcu_p1_w)
|
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE(bootleg_mcu_p1_w)
|
||||||
AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE(bootleg_mcu_p3_r, mcu_p3_w)
|
AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE(bootleg_mcu_p3_r, mcu_p3_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START( sqixu_mcu_io_map, AS_IO, 8, superqix_state )
|
static ADDRESS_MAP_START( sqix_mcu_io_map, AS_IO, 8, superqix_state )
|
||||||
AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P0) AM_READ(sqix_system_status_r)
|
AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P0) AM_READ(sqix_system_status_r)
|
||||||
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READ_PORT("DSW1")
|
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READ_PORT("DSW1")
|
||||||
AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_WRITE(sqixu_mcu_p2_w)
|
AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_WRITE(sqixu_mcu_p2_w)
|
||||||
@ -1077,7 +1117,7 @@ static INPUT_PORTS_START( pbillian )
|
|||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||||
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, superqix_state,superqix_semaphore_input_r, nullptr) /* Z80 and MCU Semaphores */
|
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, superqix_state, pbillian_semaphore_input_r, nullptr) /* Z80 and MCU Semaphores */
|
||||||
|
|
||||||
PORT_START("BUTTONS")
|
PORT_START("BUTTONS")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) // N/C
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) // N/C
|
||||||
@ -1086,7 +1126,7 @@ static INPUT_PORTS_START( pbillian )
|
|||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL // P2 fire (M powerup) + high score initials
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL // P2 fire (M powerup) + high score initials
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, superqix_state,superqix_semaphore_input_r, nullptr) /* Z80 and MCU Semaphores */
|
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, superqix_state, pbillian_semaphore_input_r, nullptr) /* Z80 and MCU Semaphores */
|
||||||
|
|
||||||
PORT_START("PLUNGER1") // plunger mechanism for shot (BUTTON1 and PEDAL mapped to the same key in MAME)
|
PORT_START("PLUNGER1") // plunger mechanism for shot (BUTTON1 and PEDAL mapped to the same key in MAME)
|
||||||
PORT_BIT( 0x3f, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00, 0x3f) PORT_SENSITIVITY(100) PORT_KEYDELTA(1)
|
PORT_BIT( 0x3f, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00, 0x3f) PORT_SENSITIVITY(100) PORT_KEYDELTA(1)
|
||||||
@ -1159,7 +1199,7 @@ static INPUT_PORTS_START( hotsmash )
|
|||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )//$49c
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )//$49c
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )//$42d
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )//$42d
|
||||||
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, superqix_state,superqix_semaphore_input_r, nullptr) /* Z80 and MCU Semaphores */
|
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, superqix_state, pbillian_semaphore_input_r, nullptr) /* Z80 and MCU Semaphores */
|
||||||
|
|
||||||
PORT_START("BUTTONS")
|
PORT_START("BUTTONS")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
@ -1168,7 +1208,7 @@ static INPUT_PORTS_START( hotsmash )
|
|||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL // p2 button 2, unused on this game?
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL // p2 button 2, unused on this game?
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, superqix_state,superqix_semaphore_input_r, nullptr) /* Z80 and MCU Semaphores */
|
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, superqix_state, pbillian_semaphore_input_r, nullptr) /* Z80 and MCU Semaphores */
|
||||||
|
|
||||||
PORT_START("DIAL1")
|
PORT_START("DIAL1")
|
||||||
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(15) PORT_KEYDELTA(30) PORT_CENTERDELTA(0) PORT_PLAYER(1)
|
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(15) PORT_KEYDELTA(30) PORT_CENTERDELTA(0) PORT_PLAYER(1)
|
||||||
@ -1233,8 +1273,7 @@ static INPUT_PORTS_START( superqix )
|
|||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) // doesn't work in bootleg
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) // doesn't work in bootleg
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) // Z80 status (pending mcu->z80)
|
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, superqix_state, superqix_semaphore_input_r, nullptr) /* Z80 and MCU Semaphores */
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) // Z80 status (pending z80->mcu)
|
|
||||||
|
|
||||||
PORT_START("P1")
|
PORT_START("P1")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
|
||||||
@ -1253,8 +1292,8 @@ static INPUT_PORTS_START( superqix )
|
|||||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) // mcu status (pending mcu->z80)
|
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, superqix_state, superqix_semaphore_input_r, nullptr) /* Z80 and MCU Semaphores */
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) // mcu status (pending z80->mcu)
|
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
@ -1359,7 +1398,6 @@ static MACHINE_CONFIG_START( pbillian, superqix_state )
|
|||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( hotsmash, pbillian )
|
static MACHINE_CONFIG_DERIVED( hotsmash, pbillian )
|
||||||
|
|
||||||
MCFG_CPU_ADD("mcu", M68705, XTAL_12MHz/4) /* 3mhz???? */
|
MCFG_CPU_ADD("mcu", M68705, XTAL_12MHz/4) /* 3mhz???? */
|
||||||
MCFG_CPU_PROGRAM_MAP(m68705_map)
|
MCFG_CPU_PROGRAM_MAP(m68705_map)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
@ -1373,7 +1411,7 @@ static MACHINE_CONFIG_START( sqix, superqix_state )
|
|||||||
MCFG_CPU_PERIODIC_INT_DRIVER(superqix_state, sqix_timer_irq, 4*60) /* ??? */
|
MCFG_CPU_PERIODIC_INT_DRIVER(superqix_state, sqix_timer_irq, 4*60) /* ??? */
|
||||||
|
|
||||||
MCFG_CPU_ADD("mcu", I8751, 12000000/3) /* ??? */
|
MCFG_CPU_ADD("mcu", I8751, 12000000/3) /* ??? */
|
||||||
MCFG_CPU_IO_MAP(bootleg_mcu_io_map)
|
MCFG_CPU_IO_MAP(sqix_mcu_io_map)
|
||||||
|
|
||||||
MCFG_QUANTUM_PERFECT_CPU("maincpu")
|
MCFG_QUANTUM_PERFECT_CPU("maincpu")
|
||||||
|
|
||||||
@ -1410,14 +1448,13 @@ static MACHINE_CONFIG_START( sqix, superqix_state )
|
|||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( sqixu, sqix )
|
static MACHINE_CONFIG_DERIVED( sqix_8031, sqix )
|
||||||
|
|
||||||
MCFG_CPU_MODIFY("mcu")
|
MCFG_CPU_MODIFY("mcu")
|
||||||
MCFG_CPU_IO_MAP(sqixu_mcu_io_map)
|
MCFG_CPU_IO_MAP(sqix_8031_mcu_io_map)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( sqixbl, superqix_state )
|
static MACHINE_CONFIG_START( sqix_nomcu, superqix_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_CPU_ADD("maincpu", Z80, 12000000/2) /* 6 MHz */
|
MCFG_CPU_ADD("maincpu", Z80, 12000000/2) /* 6 MHz */
|
||||||
@ -1447,7 +1484,7 @@ static MACHINE_CONFIG_START( sqixbl, superqix_state )
|
|||||||
|
|
||||||
MCFG_SOUND_ADD("ay1", AY8910, 12000000/8)
|
MCFG_SOUND_ADD("ay1", AY8910, 12000000/8)
|
||||||
MCFG_AY8910_PORT_A_READ_CB(IOPORT("P1"))
|
MCFG_AY8910_PORT_A_READ_CB(IOPORT("P1"))
|
||||||
MCFG_AY8910_PORT_B_READ_CB(IOPORT("P2"))
|
MCFG_AY8910_PORT_B_READ_CB(READ8(superqix_state, in4_mcu_r))
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ay2", AY8910, 12000000/8)
|
MCFG_SOUND_ADD("ay2", AY8910, 12000000/8)
|
||||||
@ -1510,7 +1547,7 @@ ROM_START( sqix )
|
|||||||
ROM_REGION( 0x1000, "mcu", 0 ) /* I8751 code */
|
ROM_REGION( 0x1000, "mcu", 0 ) /* I8751 code */
|
||||||
ROM_LOAD( "b03-03.l2", 0x00000, 0x1000, NO_DUMP ) /* Original Taito ID code for this set's MCU */
|
ROM_LOAD( "b03-03.l2", 0x00000, 0x1000, NO_DUMP ) /* Original Taito ID code for this set's MCU */
|
||||||
/* sq07.108 is from the sqixb1 set, it will be removed once the actual MCU code from b03-03.l2 is decapped / dumped */
|
/* sq07.108 is from the sqixb1 set, it will be removed once the actual MCU code from b03-03.l2 is decapped / dumped */
|
||||||
ROM_LOAD( "sq07.108", 0x00000, 0x1000, BAD_DUMP CRC(d11411fb) SHA1(31183f433596c4d2503c01f6dc8d91024f2cf5de) )
|
ROM_LOAD( "sq07.ic108", 0x00000, 0x1000, BAD_DUMP CRC(d11411fb) SHA1(31183f433596c4d2503c01f6dc8d91024f2cf5de) )
|
||||||
|
|
||||||
ROM_REGION( 0x08000, "gfx1", 0 )
|
ROM_REGION( 0x08000, "gfx1", 0 )
|
||||||
ROM_LOAD( "b03-04.s8", 0x00000, 0x08000, CRC(f815ef45) SHA1(4189d455b6ccf3ae922d410fb624c4665203febf) )
|
ROM_LOAD( "b03-04.s8", 0x00000, 0x08000, CRC(f815ef45) SHA1(4189d455b6ccf3ae922d410fb624c4665203febf) )
|
||||||
@ -1530,7 +1567,7 @@ ROM_START( sqixr1 )
|
|||||||
ROM_REGION( 0x1000, "mcu", 0 ) /* I8751 code */
|
ROM_REGION( 0x1000, "mcu", 0 ) /* I8751 code */
|
||||||
ROM_LOAD( "b03-03.l2", 0x00000, 0x1000, NO_DUMP ) /* Original Taito ID code for this set's MCU */
|
ROM_LOAD( "b03-03.l2", 0x00000, 0x1000, NO_DUMP ) /* Original Taito ID code for this set's MCU */
|
||||||
/* sq07.108 is from the sqixb1 set, it will be removed once the actual MCU code from b03-03.l2 is decapped / dumped */
|
/* sq07.108 is from the sqixb1 set, it will be removed once the actual MCU code from b03-03.l2 is decapped / dumped */
|
||||||
ROM_LOAD( "sq07.108", 0x00000, 0x1000, BAD_DUMP CRC(d11411fb) SHA1(31183f433596c4d2503c01f6dc8d91024f2cf5de) )
|
ROM_LOAD( "sq07.ic108", 0x00000, 0x1000, BAD_DUMP CRC(d11411fb) SHA1(31183f433596c4d2503c01f6dc8d91024f2cf5de) )
|
||||||
|
|
||||||
ROM_REGION( 0x08000, "gfx1", 0 )
|
ROM_REGION( 0x08000, "gfx1", 0 )
|
||||||
ROM_LOAD( "b03-04.s8", 0x00000, 0x08000, CRC(f815ef45) SHA1(4189d455b6ccf3ae922d410fb624c4665203febf) )
|
ROM_LOAD( "b03-04.s8", 0x00000, 0x08000, CRC(f815ef45) SHA1(4189d455b6ccf3ae922d410fb624c4665203febf) )
|
||||||
@ -1563,14 +1600,14 @@ ROM_END
|
|||||||
/* this is a bootleg with an 8031+external rom in place of the 8751 of the
|
/* this is a bootleg with an 8031+external rom in place of the 8751 of the
|
||||||
original board; The mcu code is extensively hacked to avoid use of port 2,
|
original board; The mcu code is extensively hacked to avoid use of port 2,
|
||||||
which is used as the rom data bus, using a multiplexed latch on one of the
|
which is used as the rom data bus, using a multiplexed latch on one of the
|
||||||
other ports instead. Is this based on dumped original b03-03.l2 code? */
|
other ports instead. This is based on dumped original b03-03.l2 code. */
|
||||||
ROM_START( sqixb1 )
|
ROM_START( sqixb1 )
|
||||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||||
ROM_LOAD( "sq01.97", 0x00000, 0x08000, CRC(0888b7de) SHA1(de3e4637436de185f43d2ad4186d4cfdcd4d33d9) )
|
ROM_LOAD( "sq01.97", 0x00000, 0x08000, CRC(0888b7de) SHA1(de3e4637436de185f43d2ad4186d4cfdcd4d33d9) )
|
||||||
ROM_LOAD( "b03-02.h3", 0x10000, 0x10000, CRC(9c23cb64) SHA1(7e04cb18cabdc0031621162cbc228cd95875a022) )
|
ROM_LOAD( "b03-02.h3", 0x10000, 0x10000, CRC(9c23cb64) SHA1(7e04cb18cabdc0031621162cbc228cd95875a022) )
|
||||||
|
|
||||||
ROM_REGION( 0x10000, "mcu", 0 ) /* I8031 code */
|
ROM_REGION( 0x10000, "mcu", 0 ) /* I8031 code */
|
||||||
ROM_LOAD( "sq07.108", 0x00000, 0x1000, BAD_DUMP CRC(d11411fb) SHA1(31183f433596c4d2503c01f6dc8d91024f2cf5de) )
|
ROM_LOAD( "sq07.ic108", 0x00000, 0x1000, CRC(d11411fb) SHA1(31183f433596c4d2503c01f6dc8d91024f2cf5de) )
|
||||||
|
|
||||||
ROM_REGION( 0x08000, "gfx1", 0 )
|
ROM_REGION( 0x08000, "gfx1", 0 )
|
||||||
ROM_LOAD( "b03-04.s8", 0x00000, 0x08000, CRC(f815ef45) SHA1(4189d455b6ccf3ae922d410fb624c4665203febf) )
|
ROM_LOAD( "b03-04.s8", 0x00000, 0x08000, CRC(f815ef45) SHA1(4189d455b6ccf3ae922d410fb624c4665203febf) )
|
||||||
@ -1705,12 +1742,12 @@ DRIVER_INIT_MEMBER(superqix_state,perestro)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
GAME( 1986, pbillian, 0, pbillian, pbillian, driver_device, 0, ROT0, "Kaneko / Taito", "Prebillian", MACHINE_SUPPORTS_SAVE )
|
GAME( 1986, pbillian, 0, pbillian, pbillian, driver_device, 0, ROT0, "Kaneko / Taito", "Prebillian", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1987, hotsmash, 0, hotsmash, hotsmash, driver_device, 0, ROT90, "Kaneko / Taito", "Vs. Hot Smash", MACHINE_SUPPORTS_SAVE )
|
GAME( 1987, hotsmash, 0, hotsmash, hotsmash, driver_device, 0, ROT90, "Kaneko / Taito", "Vs. Hot Smash", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1987, sqix, 0, sqix, superqix, superqix_state, sqix, ROT90, "Kaneko / Taito", "Super Qix (World, Rev 2)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1987, sqix, 0, sqix_8031, superqix, superqix_state, sqix, ROT90, "Kaneko / Taito", "Super Qix (World, Rev 2)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1987, sqixr1, sqix, sqix, superqix, superqix_state, sqix, ROT90, "Kaneko / Taito", "Super Qix (World, Rev 1)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1987, sqixr1, sqix, sqix_8031, superqix, superqix_state, sqix, ROT90, "Kaneko / Taito", "Super Qix (World, Rev 1)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1987, sqixu, sqix, sqixu, superqix, driver_device, 0, ROT90, "Kaneko / Taito (Romstar License)", "Super Qix (US)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1987, sqixu, sqix, sqix, superqix, driver_device, 0, ROT90, "Kaneko / Taito (Romstar License)", "Super Qix (US)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1987, sqixb1, sqix, sqix, superqix, superqix_state, sqixa, ROT90, "bootleg", "Super Qix (bootleg set 1)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1987, sqixb1, sqix, sqix_8031, superqix, superqix_state, sqixa, ROT90, "bootleg", "Super Qix (bootleg set 1, 8031 MCU)", MACHINE_SUPPORTS_SAVE ) // bootleg of World, Rev 1
|
||||||
GAME( 1987, sqixb2, sqix, sqixbl, superqix, driver_device, 0, ROT90, "bootleg", "Super Qix (bootleg set 2, No MCU)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1987, sqixb2, sqix, sqix_nomcu, superqix, driver_device, 0, ROT90, "bootleg", "Super Qix (bootleg set 2, No MCU)", MACHINE_SUPPORTS_SAVE ) // bootleg of World, Rev 1
|
||||||
GAME( 1994, perestro, 0, sqixbl, superqix, superqix_state, perestro, ROT90, "Promat", "Perestroika Girls", MACHINE_SUPPORTS_SAVE )
|
GAME( 1994, perestro, 0, sqix_nomcu, superqix, superqix_state, perestro, ROT90, "Promat", "Perestroika Girls", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1993, perestrof,perestro, sqixbl, superqix, superqix_state, perestro, ROT90, "Promat (Fuuki license)", "Perestroika Girls (Fuuki license)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1993, perestrof,perestro, sqix_nomcu, superqix, superqix_state, perestro, ROT90, "Promat (Fuuki license)", "Perestroika Girls (Fuuki license)", MACHINE_SUPPORTS_SAVE )
|
||||||
|
@ -7,9 +7,6 @@
|
|||||||
|
|
||||||
Driver by Pierpaolo Prazzoli and Bryan McPhail
|
Driver by Pierpaolo Prazzoli and Bryan McPhail
|
||||||
|
|
||||||
TODO:
|
|
||||||
- Fix sprite position in cocktail mode
|
|
||||||
|
|
||||||
=================================================================
|
=================================================================
|
||||||
Debug cheats:
|
Debug cheats:
|
||||||
|
|
||||||
@ -246,4 +243,4 @@ ROM_START( tryout )
|
|||||||
ROM_LOAD( "ch14.bpr", 0x00000, 0x0020, CRC(8ce19925) SHA1(12f8f6022f1148b6ba1d019a34247452637063a7) )
|
ROM_LOAD( "ch14.bpr", 0x00000, 0x0020, CRC(8ce19925) SHA1(12f8f6022f1148b6ba1d019a34247452637063a7) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
GAME( 1985, tryout, 0, tryout, tryout, driver_device, 0, ROT90, "Data East Corporation", "Pro Baseball Skill Tryout (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
GAME( 1985, tryout, 0, tryout, tryout, driver_device, 0, ROT90, "Data East Corporation", "Pro Baseball Skill Tryout (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||||
|
@ -7,7 +7,7 @@ class superqix_state : public driver_device
|
|||||||
public:
|
public:
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
MCU_ACKNOWLEDGE,
|
MCU_ACKNOWLEDGE, /// TODO: get rid of this hack!
|
||||||
HLE_68705_WRITE
|
HLE_68705_WRITE
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -96,6 +96,7 @@ public:
|
|||||||
DECLARE_WRITE8_MEMBER(hotsmash_68705_ddr_c_w);
|
DECLARE_WRITE8_MEMBER(hotsmash_68705_ddr_c_w);
|
||||||
DECLARE_WRITE8_MEMBER(hotsmash_Z80_mcu_w);
|
DECLARE_WRITE8_MEMBER(hotsmash_Z80_mcu_w);
|
||||||
DECLARE_READ8_MEMBER(hotsmash_Z80_mcu_r);
|
DECLARE_READ8_MEMBER(hotsmash_Z80_mcu_r);
|
||||||
|
DECLARE_CUSTOM_INPUT_MEMBER(pbillian_semaphore_input_r);
|
||||||
DECLARE_CUSTOM_INPUT_MEMBER(superqix_semaphore_input_r);
|
DECLARE_CUSTOM_INPUT_MEMBER(superqix_semaphore_input_r);
|
||||||
DECLARE_WRITE8_MEMBER(pbillian_Z80_mcu_w);
|
DECLARE_WRITE8_MEMBER(pbillian_Z80_mcu_w);
|
||||||
DECLARE_WRITE8_MEMBER(superqix_videoram_w);
|
DECLARE_WRITE8_MEMBER(superqix_videoram_w);
|
||||||
@ -103,8 +104,9 @@ public:
|
|||||||
DECLARE_WRITE8_MEMBER(superqix_bitmapram2_w);
|
DECLARE_WRITE8_MEMBER(superqix_bitmapram2_w);
|
||||||
DECLARE_WRITE8_MEMBER(pbillian_0410_w);
|
DECLARE_WRITE8_MEMBER(pbillian_0410_w);
|
||||||
DECLARE_WRITE8_MEMBER(superqix_0410_w);
|
DECLARE_WRITE8_MEMBER(superqix_0410_w);
|
||||||
DECLARE_READ8_MEMBER(in4_mcu_r);
|
|
||||||
DECLARE_READ8_MEMBER(sqix_from_mcu_r);
|
DECLARE_READ8_MEMBER(sqix_from_mcu_r);
|
||||||
|
//DECLARE_READ8_MEMBER(superqix_ay1_a_r);
|
||||||
|
DECLARE_READ8_MEMBER(in4_mcu_r); //DECLARE_READ8_MEMBER(superqix_ay1_b_r);
|
||||||
DECLARE_WRITE8_MEMBER(sqix_z80_mcu_w);
|
DECLARE_WRITE8_MEMBER(sqix_z80_mcu_w);
|
||||||
DECLARE_READ8_MEMBER(bootleg_in0_r);
|
DECLARE_READ8_MEMBER(bootleg_in0_r);
|
||||||
DECLARE_READ8_MEMBER(hotsmash_ay_port_a_r);
|
DECLARE_READ8_MEMBER(hotsmash_ay_port_a_r);
|
||||||
|
@ -1,351 +1,609 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<mamelayout version="2">
|
<mamelayout version="2">
|
||||||
|
<!-- define elements -->
|
||||||
|
<script>
|
||||||
|
local layout = {}
|
||||||
|
local board
|
||||||
|
local first_sq
|
||||||
|
local enpassant -- en passant possible on next move
|
||||||
|
local enpassant_pos -- position of the piece to be removed
|
||||||
|
|
||||||
|
local port_tags = { ":COL_A", ":COL_B", ":COL_C", ":COL_D", ":COL_E", ":COL_F", ":COL_G", ":COL_H" }
|
||||||
|
local port_values = { }
|
||||||
|
local ports
|
||||||
|
|
||||||
|
local function change_piece_state(pos, new_state)
|
||||||
|
board[pos.y][pos.x] = new_state
|
||||||
|
machine:outputs():set_indexed_value("pos", (pos.y * 10) + pos.x, new_state)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function move_piece(from, to)
|
||||||
|
if board[from.y][from.x] == 0 then
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
-- ignores move on the same position
|
||||||
|
if from.y == to.y and from.x == to.x then
|
||||||
|
change_piece_state(to, board[to.y][to.x])
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
-- if another piece is on the destination position, the first input is used for remove the old piece and the next input is used for move the new piece
|
||||||
|
if board[to.y][to.x] ~= 0 then
|
||||||
|
change_piece_state(to, 0)
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
-- en passant
|
||||||
|
if enpassant and board[to.y][to.x] == 0 and board[from.y][from.x] == 12 and from.y == 4 and to.y == 3 and from.x ~= to.x and board[to.y + 1][to.x] == 6 then
|
||||||
|
enpassant_pos = {x = to.x, y = to.y + 1}
|
||||||
|
elseif enpassant and board[to.y][to.x] == 0 and board[from.y][from.x] == 6 and from.y == 5 and to.y == 6 and from.x ~= to.x and board[to.y - 1][to.x] == 12 then
|
||||||
|
enpassant_pos = {x = to.x, y = to.y - 1}
|
||||||
|
end
|
||||||
|
if board[to.y][to.x] == 0 and from.x == to.x and ((board[from.y][from.x] == 6 and from.y == 2 and to.y == 4) or
|
||||||
|
(board[from.y][from.x] == 12 and from.y == 7 and to.y == 5)) then
|
||||||
|
enpassant = true
|
||||||
|
else
|
||||||
|
enpassant = false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- promotion
|
||||||
|
if (to.y == 8 and board[from.y][from.x] == 6) or (to.y == 1 and board[from.y][from.x] == 12) then
|
||||||
|
change_piece_state(to, board[from.y][from.x] - 4) -- TODO: make this configurable
|
||||||
|
else
|
||||||
|
change_piece_state(to, board[from.y][from.x])
|
||||||
|
end
|
||||||
|
|
||||||
|
change_piece_state(from, 0)
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
function layout.reset()
|
||||||
|
board =
|
||||||
|
{{ 3, 5, 4, 2, 1, 4, 5, 3 },
|
||||||
|
{ 6, 6, 6, 6, 6, 6, 6, 6 },
|
||||||
|
{ 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||||
|
{ 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||||
|
{ 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||||
|
{ 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||||
|
{ 12,12,12,12,12,12,12,12 },
|
||||||
|
{ 9,11,10, 8, 7,10,11, 9 }}
|
||||||
|
|
||||||
|
for y, row in ipairs(board) do
|
||||||
|
for x, cell in ipairs(row) do
|
||||||
|
change_piece_state({x = x, y = y}, board[y][x])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
ports = machine:ioport().ports
|
||||||
|
first_sq = nil
|
||||||
|
enpassant = false
|
||||||
|
enpassant_pos = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
function layout.frame()
|
||||||
|
local value = ports[":EXTRA"]:read()
|
||||||
|
if value & 0x02 == 0x02 then
|
||||||
|
layout.reset()
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
for x, tag in ipairs(port_tags) do
|
||||||
|
local port = ports[tag]
|
||||||
|
if not port then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local newvalue = port:read()
|
||||||
|
if port_values[x] ~= newvalue then
|
||||||
|
port_values[x] = newvalue
|
||||||
|
for y = 8, 1, -1 do
|
||||||
|
if newvalue & 1 == 0 then
|
||||||
|
if enpassant_pos and enpassant_pos.x == x and enpassant_pos.y == y then
|
||||||
|
change_piece_state(enpassant_pos, 0)
|
||||||
|
enpassant = false
|
||||||
|
enpassant_pos = nil
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if not first_sq then
|
||||||
|
if board[y][x] ~= 0 then
|
||||||
|
first_sq = {x = x, y = y}
|
||||||
|
machine:outputs():set_indexed_value("pos", (y * 10) + x, board[y][x] | 0x10)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if move_piece(first_sq, {x = x, y = y}) == 1 then
|
||||||
|
first_sq = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
newvalue = newvalue >> 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return layout, "chessmst"
|
||||||
|
</script>
|
||||||
|
|
||||||
<element name="led" defstate="1">
|
<element name="led" defstate="1">
|
||||||
<disk state="0">
|
<disk state="0">
|
||||||
<color red="0.75" green="0.0" blue="0.0" />
|
<color red="0.95" green="0.0" blue="0.0" />
|
||||||
</disk>
|
</disk>
|
||||||
<disk state="1">
|
<disk state="1">
|
||||||
<color red="0.20" green="0.0" blue="0.0" />
|
<color red="0.20" green="0.0" blue="0.0" />
|
||||||
</disk>
|
</disk>
|
||||||
</element>
|
</element>
|
||||||
|
<element name="hl" defstate="0">
|
||||||
<element name="str_your"> <text string="YOUR"/> </element>
|
<text string=" ">
|
||||||
<element name="str_cm"> <text string="CM"/> </element>
|
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||||
<element name="str_check"> <text string="CHECK"/> </element>
|
|
||||||
<element name="str_c1"> <text string="C1"/> </element>
|
|
||||||
<element name="str_c2"> <text string="C2"/> </element>
|
|
||||||
<element name="str_c3"> <text string="C3"/> </element>
|
|
||||||
<element name="str_pawn"> <text string="Pawn"/> </element>
|
|
||||||
<element name="str_rook"> <text string="Rook"/> </element>
|
|
||||||
<element name="str_knight"> <text string="Knight"/> </element>
|
|
||||||
<element name="str_bishop"> <text string="Bishop"/> </element>
|
|
||||||
<element name="str_queen"> <text string="Queen"/> </element>
|
|
||||||
<element name="str_king"> <text string="King"/> </element>
|
|
||||||
<element name="str_white"> <text string="White"/> </element>
|
|
||||||
<element name="str_black"> <text string="Black"/> </element>
|
|
||||||
<element name="str_changeb"> <text string="CHANGE BOARD"/> </element>
|
|
||||||
|
|
||||||
<element name="background">
|
|
||||||
<rect>
|
|
||||||
<bounds left="0" top="0" right="1" bottom="1" />
|
|
||||||
<color red="0.0" green="0.0" blue="0.0" />
|
<color red="0.0" green="0.0" blue="0.0" />
|
||||||
</rect>
|
</text>
|
||||||
|
<disk state="1">
|
||||||
|
<bounds x="0.12" y="0.12" width="0.76" height="0.76" />
|
||||||
|
<color red="1.0" green="1.0" blue="1.0" />
|
||||||
|
</disk>
|
||||||
|
</element>
|
||||||
|
<element name="hlb" defstate="0">
|
||||||
|
<disk state="0">
|
||||||
|
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||||
|
<color red="0.0" green="0.0" blue="0.0" />
|
||||||
|
</disk>
|
||||||
|
<disk state="1">
|
||||||
|
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||||
|
<color red="0.4" green="0.4" blue="0.4" />
|
||||||
|
</disk>
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<view name="Default Layout">
|
<element name="black"><rect><color red="0.64" green="0.08" blue="0.11" /></rect></element>
|
||||||
<!-- background -->
|
<element name="white"><rect><color red="1.00" green="0.88" blue="0.55" /></rect></element>
|
||||||
<bezel element="background">
|
|
||||||
<bounds left="00" top="00" right="100" bottom="80" />
|
|
||||||
</bezel>
|
|
||||||
|
|
||||||
<!-- Column A -->
|
<element name="text_1"> <text string="1"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
<bezel name="led_a1" element="led" inputtag="COL_A" inputmask="0x80">
|
<element name="text_2"> <text string="2"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
<bounds x="5" y="5" width="2" height="2" />
|
<element name="text_3"> <text string="3"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
</bezel>
|
<element name="text_4"> <text string="4"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
<bezel name="led_a2" element="led" inputtag="COL_A" inputmask="0x40">
|
<element name="text_5"> <text string="5"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
<bounds x="5" y="15" width="2" height="2" />
|
<element name="text_6"> <text string="6"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
</bezel>
|
<element name="text_7"> <text string="7"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
<bezel name="led_a3" element="led" inputtag="COL_A" inputmask="0x20">
|
<element name="text_8"> <text string="8"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
<bounds x="5" y="25" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_a4" element="led" inputtag="COL_A" inputmask="0x10">
|
|
||||||
<bounds x="5" y="35" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_a5" element="led" inputtag="COL_A" inputmask="0x08">
|
|
||||||
<bounds x="5" y="45" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_a6" element="led" inputtag="COL_A" inputmask="0x04">
|
|
||||||
<bounds x="5" y="55" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_a7" element="led" inputtag="COL_A" inputmask="0x02">
|
|
||||||
<bounds x="5" y="65" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_a8" element="led" inputtag="COL_A" inputmask="0x01">
|
|
||||||
<bounds x="5" y="75" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
|
|
||||||
<!-- Column B -->
|
<element name="text_a"> <text string="A"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
<bezel name="led_b1" element="led" inputtag="COL_B" inputmask="0x80">
|
<element name="text_b"> <text string="B"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
<bounds x="15" y="5" width="2" height="2" />
|
<element name="text_c"> <text string="C"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
</bezel>
|
<element name="text_d"> <text string="D"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
<bezel name="led_b2" element="led" inputtag="COL_B" inputmask="0x40">
|
<element name="text_e"> <text string="E"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
<bounds x="15" y="15" width="2" height="2" />
|
<element name="text_f"> <text string="F"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
</bezel>
|
<element name="text_g"> <text string="G"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
<bezel name="led_b3" element="led" inputtag="COL_B" inputmask="0x20">
|
<element name="text_h"> <text string="H"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
<bounds x="15" y="25" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_b4" element="led" inputtag="COL_B" inputmask="0x10">
|
|
||||||
<bounds x="15" y="35" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_b5" element="led" inputtag="COL_B" inputmask="0x08">
|
|
||||||
<bounds x="15" y="45" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_b6" element="led" inputtag="COL_B" inputmask="0x04">
|
|
||||||
<bounds x="15" y="55" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_b7" element="led" inputtag="COL_B" inputmask="0x02">
|
|
||||||
<bounds x="15" y="65" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_b8" element="led" inputtag="COL_B" inputmask="0x01">
|
|
||||||
<bounds x="15" y="75" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
|
|
||||||
<!-- Column C -->
|
<element name="text_chessmaster"> <text string="CHESS-MASTER" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bezel name="led_c1" element="led" inputtag="COL_C" inputmask="0x80">
|
<element name="text_newgame"> <text string="NEW GAME" align="0"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bounds x="25" y="5" width="2" height="2" />
|
<element name="text_level"> <text string="LEVEL" align="0"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
</bezel>
|
<element name="text_color"> <text string="COLOR" align="0"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bezel name="led_c2" element="led" inputtag="COL_C" inputmask="0x40">
|
<element name="text_board"> <text string="BOARD" align="0"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bounds x="25" y="15" width="2" height="2" />
|
<element name="text_selfplay"> <text string="SELF PLAY" align="0"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
</bezel>
|
<element name="text_referee"> <text string="REFEREE" align="0"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bezel name="led_c3" element="led" inputtag="COL_C" inputmask="0x20">
|
<element name="text_random"> <text string="RANDOM" align="0"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bounds x="25" y="25" width="2" height="2" />
|
<element name="text_hint"> <text string="HINT" align="0"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
</bezel>
|
<element name="text_white"> <text string="WHITE" align="2"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bezel name="led_c4" element="led" inputtag="COL_C" inputmask="0x10">
|
<element name="text_black"> <text string="BLACK" align="2"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bounds x="25" y="35" width="2" height="2" />
|
<element name="text_king" > <text string="♔" align="2"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
</bezel>
|
<element name="text_queen" > <text string="♕" align="2"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bezel name="led_c5" element="led" inputtag="COL_C" inputmask="0x08">
|
<element name="text_rook" > <text string="♖" align="2"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bounds x="25" y="45" width="2" height="2" />
|
<element name="text_bishop" > <text string="♗" align="2"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
</bezel>
|
<element name="text_knight" > <text string="♘" align="2"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bezel name="led_c6" element="led" inputtag="COL_C" inputmask="0x04">
|
<element name="text_pawn" > <text string="♙" align="2"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bounds x="25" y="55" width="2" height="2" />
|
<element name="text_change"> <text string="CHANGE" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
</bezel>
|
<element name="text_board"> <text string="BOARD" align="2"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bezel name="led_c7" element="led" inputtag="COL_C" inputmask="0x02">
|
<element name="text_halt"> <text string="HALT" align="0"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bounds x="25" y="65" width="2" height="2" />
|
<element name="text_reset"> <text string="RESET" align="0"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
</bezel>
|
<element name="text_check"> <text string="CHECK" align="0"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bezel name="led_c8" element="led" inputtag="COL_C" inputmask="0x01">
|
<element name="text_your"> <text string="YOUR" align="0"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
<bounds x="25" y="75" width="2" height="2" />
|
<element name="text_cms"> <text string="CM'S" align="0"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
</bezel>
|
|
||||||
|
|
||||||
<!-- Column D -->
|
<element name="piece" defstate="0">
|
||||||
<bezel name="led_d1" element="led" inputtag="COL_D" inputmask="0x80">
|
<text string="♚" state="1"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
<bounds x="35" y="5" width="2" height="2" />
|
<text string="♛" state="2"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
</bezel>
|
<text string="♜" state="3"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
<bezel name="led_d2" element="led" inputtag="COL_D" inputmask="0x40">
|
<text string="♝" state="4"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
<bounds x="35" y="15" width="2" height="2" />
|
<text string="♞" state="5"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
</bezel>
|
<text string="♟" state="6"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
<bezel name="led_d3" element="led" inputtag="COL_D" inputmask="0x20">
|
|
||||||
<bounds x="35" y="25" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_d4" element="led" inputtag="COL_D" inputmask="0x10">
|
|
||||||
<bounds x="35" y="35" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_d5" element="led" inputtag="COL_D" inputmask="0x08">
|
|
||||||
<bounds x="35" y="45" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_d6" element="led" inputtag="COL_D" inputmask="0x04">
|
|
||||||
<bounds x="35" y="55" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_d7" element="led" inputtag="COL_D" inputmask="0x02">
|
|
||||||
<bounds x="35" y="65" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_d8" element="led" inputtag="COL_D" inputmask="0x01">
|
|
||||||
<bounds x="35" y="75" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
|
|
||||||
<!-- Column E -->
|
<text string="♚" state="7"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
<bezel name="led_e1" element="led" inputtag="COL_E" inputmask="0x80">
|
<text string="♛" state="8"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
<bounds x="45" y="5" width="2" height="2" />
|
<text string="♜" state="9"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
</bezel>
|
<text string="♝" state="10"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
<bezel name="led_e2" element="led" inputtag="COL_E" inputmask="0x40">
|
<text string="♞" state="11"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
<bounds x="45" y="15" width="2" height="2" />
|
<text string="♟" state="12"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
</bezel>
|
|
||||||
<bezel name="led_e3" element="led" inputtag="COL_E" inputmask="0x20">
|
|
||||||
<bounds x="45" y="25" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_e4" element="led" inputtag="COL_E" inputmask="0x10">
|
|
||||||
<bounds x="45" y="35" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_e5" element="led" inputtag="COL_E" inputmask="0x08">
|
|
||||||
<bounds x="45" y="45" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_e6" element="led" inputtag="COL_E" inputmask="0x04">
|
|
||||||
<bounds x="45" y="55" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_e7" element="led" inputtag="COL_E" inputmask="0x02">
|
|
||||||
<bounds x="45" y="65" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_e8" element="led" inputtag="COL_E" inputmask="0x01">
|
|
||||||
<bounds x="45" y="75" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
|
|
||||||
<!-- Column F -->
|
<!-- selected pieces -->
|
||||||
<bezel name="led_f1" element="led" inputtag="COL_F" inputmask="0x80">
|
<disk state="17"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
<bounds x="55" y="5" width="2" height="2" />
|
<disk state="18"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
</bezel>
|
<disk state="19"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
<bezel name="led_f2" element="led" inputtag="COL_F" inputmask="0x40">
|
<disk state="20"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
<bounds x="55" y="15" width="2" height="2" />
|
<disk state="21"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
</bezel>
|
<disk state="22"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
<bezel name="led_f3" element="led" inputtag="COL_F" inputmask="0x20">
|
<disk state="23"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
<bounds x="55" y="25" width="2" height="2" />
|
<disk state="24"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
</bezel>
|
<disk state="25"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
<bezel name="led_f4" element="led" inputtag="COL_F" inputmask="0x10">
|
<disk state="26"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
<bounds x="55" y="35" width="2" height="2" />
|
<disk state="27"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
</bezel>
|
<disk state="28"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
<bezel name="led_f5" element="led" inputtag="COL_F" inputmask="0x08">
|
|
||||||
<bounds x="55" y="45" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_f6" element="led" inputtag="COL_F" inputmask="0x04">
|
|
||||||
<bounds x="55" y="55" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_f7" element="led" inputtag="COL_F" inputmask="0x02">
|
|
||||||
<bounds x="55" y="65" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_f8" element="led" inputtag="COL_F" inputmask="0x01">
|
|
||||||
<bounds x="55" y="75" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
|
|
||||||
<!-- Column G -->
|
<text string="♚" state="17"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
<bezel name="led_g1" element="led" inputtag="COL_G" inputmask="0x80">
|
<text string="♛" state="18"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
<bounds x="65" y="5" width="2" height="2" />
|
<text string="♜" state="19"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
</bezel>
|
<text string="♝" state="20"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
<bezel name="led_g2" element="led" inputtag="COL_G" inputmask="0x40">
|
<text string="♞" state="21"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
<bounds x="65" y="15" width="2" height="2" />
|
<text string="♟" state="22"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
</bezel>
|
|
||||||
<bezel name="led_g3" element="led" inputtag="COL_G" inputmask="0x20">
|
|
||||||
<bounds x="65" y="25" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_g4" element="led" inputtag="COL_G" inputmask="0x10">
|
|
||||||
<bounds x="65" y="35" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_g5" element="led" inputtag="COL_G" inputmask="0x08">
|
|
||||||
<bounds x="65" y="45" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_g6" element="led" inputtag="COL_G" inputmask="0x04">
|
|
||||||
<bounds x="65" y="55" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_g7" element="led" inputtag="COL_G" inputmask="0x02">
|
|
||||||
<bounds x="65" y="65" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_g8" element="led" inputtag="COL_G" inputmask="0x01">
|
|
||||||
<bounds x="65" y="75" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
|
|
||||||
<!-- Column H -->
|
<text string="♚" state="23"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
<bezel name="led_h1" element="led" inputtag="COL_H" inputmask="0x80">
|
<text string="♛" state="24"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
<bounds x="75" y="5" width="2" height="2" />
|
<text string="♜" state="25"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
</bezel>
|
<text string="♝" state="26"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
<bezel name="led_h2" element="led" inputtag="COL_H" inputmask="0x40">
|
<text string="♞" state="27"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
<bounds x="75" y="15" width="2" height="2" />
|
<text string="♟" state="28"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
</bezel>
|
</element>
|
||||||
<bezel name="led_h3" element="led" inputtag="COL_H" inputmask="0x20">
|
|
||||||
<bounds x="75" y="25" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_h4" element="led" inputtag="COL_H" inputmask="0x10">
|
|
||||||
<bounds x="75" y="35" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_h5" element="led" inputtag="COL_H" inputmask="0x08">
|
|
||||||
<bounds x="75" y="45" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_h6" element="led" inputtag="COL_H" inputmask="0x04">
|
|
||||||
<bounds x="75" y="55" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_h7" element="led" inputtag="COL_H" inputmask="0x02">
|
|
||||||
<bounds x="75" y="65" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_h8" element="led" inputtag="COL_H" inputmask="0x01">
|
|
||||||
<bounds x="75" y="75" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
|
|
||||||
<!-- game status LEDs -->
|
<!-- build screen -->
|
||||||
<bezel name="led_j5" element="led">
|
|
||||||
<bounds x="85" y="8" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_j6" element="led">
|
|
||||||
<bounds x="90" y="8" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_j7" element="led">
|
|
||||||
<bounds x="95" y="8" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
|
|
||||||
<bezel name="lbl_your" element="str_your">
|
<view name="Internal Layout">
|
||||||
<bounds x="84" y="5" width="4" height="2" />
|
<bounds left="-2" right="117.5" top="-2" bottom="88" />
|
||||||
</bezel>
|
|
||||||
<bezel name="lbl_cm" element="str_cm">
|
|
||||||
<bounds x="90" y="5" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="lbl_check" element="str_check">
|
|
||||||
<bounds x="94" y="5" width="5" height="2" />
|
|
||||||
</bezel>
|
|
||||||
|
|
||||||
<!-- command mode LEDs -->
|
<bezel element="black"><bounds x="-2.5" y="-2" width="120" height="90.5" /></bezel>
|
||||||
<bezel name="led_j2" element="led">
|
<bezel element="white"><bounds x="89" y="-2" width="30" height="90.5" /></bezel>
|
||||||
<bounds x="85" y="15" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_j3" element="led">
|
|
||||||
<bounds x="90" y="15" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_j4" element="led">
|
|
||||||
<bounds x="95" y="15" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
|
|
||||||
<bezel name="lbl_c1" element="str_c1">
|
<!-- chessboard coords -->
|
||||||
<bounds x="85" y="12" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="lbl_c2" element="str_c2">
|
|
||||||
<bounds x="90" y="12" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="lbl_c3" element="str_c3">
|
|
||||||
<bounds x="95" y="12" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
|
|
||||||
<!-- type LEDs -->
|
<bezel element="text_8"><bounds x="-0.8" y="7" width="2" height="2" /></bezel>
|
||||||
<bezel name="led_i1" element="led">
|
<bezel element="text_7"><bounds x="-0.8" y="17" width="2" height="2" /></bezel>
|
||||||
<bounds x="85" y="20" width="2" height="2" />
|
<bezel element="text_6"><bounds x="-0.8" y="27" width="2" height="2" /></bezel>
|
||||||
</bezel>
|
<bezel element="text_5"><bounds x="-0.8" y="37" width="2" height="2" /></bezel>
|
||||||
<bezel name="led_i2" element="led">
|
<bezel element="text_4"><bounds x="-0.8" y="47" width="2" height="2" /></bezel>
|
||||||
<bounds x="85" y="26" width="2" height="2" />
|
<bezel element="text_3"><bounds x="-0.8" y="57" width="2" height="2" /></bezel>
|
||||||
</bezel>
|
<bezel element="text_2"><bounds x="-0.8" y="67" width="2" height="2" /></bezel>
|
||||||
<bezel name="led_i3" element="led">
|
<bezel element="text_1"><bounds x="-0.8" y="77" width="2" height="2" /></bezel>
|
||||||
<bounds x="85" y="32" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_i4" element="led">
|
|
||||||
<bounds x="85" y="38" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_i5" element="led">
|
|
||||||
<bounds x="85" y="44" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_i6" element="led">
|
|
||||||
<bounds x="85" y="50" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_i7" element="led">
|
|
||||||
<bounds x="85" y="56" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="led_i8" element="led">
|
|
||||||
<bounds x="85" y="62" width="2" height="2" />
|
|
||||||
</bezel>
|
|
||||||
|
|
||||||
<bezel name="lbl_pawn" element="str_pawn">
|
<bezel element="text_a"><bounds x="7" y="85" width="2" height="2" /></bezel>
|
||||||
<bounds x="88" y="20" width="4" height="2" />
|
<bezel element="text_b"><bounds x="17" y="85" width="2" height="2" /></bezel>
|
||||||
</bezel>
|
<bezel element="text_c"><bounds x="27" y="85" width="2" height="2" /></bezel>
|
||||||
<bezel name="lbl_knight" element="str_knight">
|
<bezel element="text_d"><bounds x="37" y="85" width="2" height="2" /></bezel>
|
||||||
<bounds x="88" y="26" width="5" height="2" />
|
<bezel element="text_e"><bounds x="47" y="85" width="2" height="2" /></bezel>
|
||||||
</bezel>
|
<bezel element="text_f"><bounds x="57" y="85" width="2" height="2" /></bezel>
|
||||||
<bezel name="lbl_bishop" element="str_bishop">
|
<bezel element="text_g"><bounds x="67" y="85" width="2" height="2" /></bezel>
|
||||||
<bounds x="88" y="32" width="5" height="2" />
|
<bezel element="text_h"><bounds x="77" y="85" width="2" height="2" /></bezel>
|
||||||
</bezel>
|
|
||||||
<bezel name="lbl_rook" element="str_rook">
|
|
||||||
<bounds x="88" y="38" width="4" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="lbl_queen" element="str_queen">
|
|
||||||
<bounds x="88" y="44" width="5" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="lbl_king" element="str_king">
|
|
||||||
<bounds x="88" y="50" width="4" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="lbl_white" element="str_white">
|
|
||||||
<bounds x="88" y="56" width="5" height="2" />
|
|
||||||
</bezel>
|
|
||||||
<bezel name="lbl_black" element="str_black">
|
|
||||||
<bounds x="88" y="62" width="4" height="2" />
|
|
||||||
</bezel>
|
|
||||||
|
|
||||||
<!-- change board LED -->
|
<!-- chessboard bezel -->
|
||||||
<bezel name="led_j8" element="led">
|
|
||||||
<bounds x="89" y="70" width="2" height="2" />
|
<bezel element="white"><bounds x="2" y="2" width="82" height="82" /></bezel>
|
||||||
</bezel>
|
<bezel element="white"><bounds x="3" y="3" width="80" height="80" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="13" y="2.5" width="10" height="10.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="33" y="2.5" width="10" height="10.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="53" y="2.5" width="10" height="10.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="73" y="2.5" width="10.5" height="10.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="2.5" y="13" width="10.5" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="23" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="43" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="63" y="13" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="13" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="33" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="53" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="73" y="23" width="10.5" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="2.5" y="33" width="10.5" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="23" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="43" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="63" y="33" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="13" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="33" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="53" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="73" y="43" width="10.5" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="2.5" y="53" width="10.5" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="23" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="43" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="63" y="53" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="13" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="33" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="53" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="73" y="63" width="10.5" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="2.5" y="73" width="10.5" height="10.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="23" y="73" width="10" height="10.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="43" y="73" width="10" height="10.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="63" y="73" width="10" height="10.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos11" element="piece"><bounds x="3" y="3" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos12" element="piece"><bounds x="13" y="3" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos13" element="piece"><bounds x="23" y="3" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos14" element="piece"><bounds x="33" y="3" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos15" element="piece"><bounds x="43" y="3" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos16" element="piece"><bounds x="53" y="3" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos17" element="piece"><bounds x="63" y="3" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos18" element="piece"><bounds x="73" y="3" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos21" element="piece"><bounds x="3" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos22" element="piece"><bounds x="13" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos23" element="piece"><bounds x="23" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos24" element="piece"><bounds x="33" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos25" element="piece"><bounds x="43" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos26" element="piece"><bounds x="53" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos27" element="piece"><bounds x="63" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos28" element="piece"><bounds x="73" y="13" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos31" element="piece"><bounds x="3" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos32" element="piece"><bounds x="13" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos33" element="piece"><bounds x="23" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos34" element="piece"><bounds x="33" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos35" element="piece"><bounds x="43" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos36" element="piece"><bounds x="53" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos37" element="piece"><bounds x="63" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos38" element="piece"><bounds x="73" y="23" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos41" element="piece"><bounds x="3" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos42" element="piece"><bounds x="13" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos43" element="piece"><bounds x="23" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos44" element="piece"><bounds x="33" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos45" element="piece"><bounds x="43" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos46" element="piece"><bounds x="53" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos47" element="piece"><bounds x="63" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos48" element="piece"><bounds x="73" y="33" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos51" element="piece"><bounds x="3" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos52" element="piece"><bounds x="13" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos53" element="piece"><bounds x="23" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos54" element="piece"><bounds x="33" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos55" element="piece"><bounds x="43" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos56" element="piece"><bounds x="53" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos57" element="piece"><bounds x="63" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos58" element="piece"><bounds x="73" y="43" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos61" element="piece"><bounds x="3" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos62" element="piece"><bounds x="13" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos63" element="piece"><bounds x="23" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos64" element="piece"><bounds x="33" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos65" element="piece"><bounds x="43" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos66" element="piece"><bounds x="53" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos67" element="piece"><bounds x="63" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos68" element="piece"><bounds x="73" y="53" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos71" element="piece"><bounds x="3" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos72" element="piece"><bounds x="13" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos73" element="piece"><bounds x="23" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos74" element="piece"><bounds x="33" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos75" element="piece"><bounds x="43" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos76" element="piece"><bounds x="53" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos77" element="piece"><bounds x="63" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos78" element="piece"><bounds x="73" y="63" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos81" element="piece"><bounds x="3" y="73" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos82" element="piece"><bounds x="13" y="73" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos83" element="piece"><bounds x="23" y="73" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos84" element="piece"><bounds x="33" y="73" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos85" element="piece"><bounds x="43" y="73" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos86" element="piece"><bounds x="53" y="73" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos87" element="piece"><bounds x="63" y="73" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos88" element="piece"><bounds x="73" y="73" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<!-- chessboard leds -->
|
||||||
|
|
||||||
|
<bezel name="led_a1" element="led"><bounds x="3.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b1" element="led"><bounds x="13.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c1" element="led"><bounds x="23.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d1" element="led"><bounds x="33.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e1" element="led"><bounds x="43.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f1" element="led"><bounds x="53.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g1" element="led"><bounds x="63.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h1" element="led"><bounds x="73.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_a2" element="led"><bounds x="3.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b2" element="led"><bounds x="13.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c2" element="led"><bounds x="23.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d2" element="led"><bounds x="33.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e2" element="led"><bounds x="43.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f2" element="led"><bounds x="53.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g2" element="led"><bounds x="63.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h2" element="led"><bounds x="73.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_a3" element="led"><bounds x="3.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b3" element="led"><bounds x="13.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c3" element="led"><bounds x="23.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d3" element="led"><bounds x="33.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e3" element="led"><bounds x="43.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f3" element="led"><bounds x="53.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g3" element="led"><bounds x="63.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h3" element="led"><bounds x="73.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_a4" element="led"><bounds x="3.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b4" element="led"><bounds x="13.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c4" element="led"><bounds x="23.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d4" element="led"><bounds x="33.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e4" element="led"><bounds x="43.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f4" element="led"><bounds x="53.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g4" element="led"><bounds x="63.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h4" element="led"><bounds x="73.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_a5" element="led"><bounds x="3.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b5" element="led"><bounds x="13.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c5" element="led"><bounds x="23.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d5" element="led"><bounds x="33.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e5" element="led"><bounds x="43.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f5" element="led"><bounds x="53.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g5" element="led"><bounds x="63.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h5" element="led"><bounds x="73.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_a6" element="led"><bounds x="3.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b6" element="led"><bounds x="13.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c6" element="led"><bounds x="23.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d6" element="led"><bounds x="33.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e6" element="led"><bounds x="43.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f6" element="led"><bounds x="53.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g6" element="led"><bounds x="63.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h6" element="led"><bounds x="73.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_a7" element="led"><bounds x="3.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b7" element="led"><bounds x="13.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c7" element="led"><bounds x="23.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d7" element="led"><bounds x="33.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e7" element="led"><bounds x="43.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f7" element="led"><bounds x="53.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g7" element="led"><bounds x="63.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h7" element="led"><bounds x="73.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_a8" element="led"><bounds x="3.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b8" element="led"><bounds x="13.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c8" element="led"><bounds x="23.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d8" element="led"><bounds x="33.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e8" element="led"><bounds x="43.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f8" element="led"><bounds x="53.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g8" element="led"><bounds x="63.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h8" element="led"><bounds x="73.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<!-- chessboard sensors -->
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x80"><bounds x="3" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x80"><bounds x="13" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x80"><bounds x="23" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x80"><bounds x="33" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x80"><bounds x="43" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x80"><bounds x="53" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x80"><bounds x="63" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x80"><bounds x="73" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x40"><bounds x="3" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x40"><bounds x="13" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x40"><bounds x="23" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x40"><bounds x="33" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x40"><bounds x="43" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x40"><bounds x="53" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x40"><bounds x="63" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x40"><bounds x="73" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x20"><bounds x="3" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x20"><bounds x="13" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x20"><bounds x="23" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x20"><bounds x="33" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x20"><bounds x="43" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x20"><bounds x="53" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x20"><bounds x="63" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x20"><bounds x="73" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x10"><bounds x="3" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x10"><bounds x="13" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x10"><bounds x="23" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x10"><bounds x="33" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x10"><bounds x="43" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x10"><bounds x="53" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x10"><bounds x="63" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x10"><bounds x="73" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x08"><bounds x="3" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x08"><bounds x="13" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x08"><bounds x="23" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x08"><bounds x="33" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x08"><bounds x="43" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x08"><bounds x="53" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x08"><bounds x="63" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x08"><bounds x="73" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x04"><bounds x="3" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x04"><bounds x="13" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x04"><bounds x="23" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x04"><bounds x="33" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x04"><bounds x="43" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x04"><bounds x="53" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x04"><bounds x="63" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x04"><bounds x="73" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x02"><bounds x="3" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x02"><bounds x="13" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x02"><bounds x="23" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x02"><bounds x="33" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x02"><bounds x="43" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x02"><bounds x="53" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x02"><bounds x="63" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x02"><bounds x="73" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x01"><bounds x="3" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x01"><bounds x="13" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x01"><bounds x="23" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x01"><bounds x="33" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x01"><bounds x="43" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x01"><bounds x="53" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x01"><bounds x="63" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x01"><bounds x="73" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
|
||||||
|
<!-- right side -->
|
||||||
|
|
||||||
|
<bezel element="text_chessmaster"><bounds x="94" y="0" width="24" height="3" /></bezel>
|
||||||
|
<bezel element="text_newgame"> <bounds x="98" y="16" width="18" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_level"> <bounds x="98" y="23" width="18" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_color"> <bounds x="98" y="30" width="18" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_board"> <bounds x="98" y="37" width="18" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_selfplay"><bounds x="98" y="44" width="18" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_referee"> <bounds x="98" y="51" width="18" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_random"> <bounds x="98" y="58" width="18" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_hint"> <bounds x="98" y="65" width="18" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_reset"> <bounds x="92.5" y="82" width="10" height="2" /></bezel>
|
||||||
|
<bezel element="text_halt"> <bounds x="107.5" y="82" width="8" height="2" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="text_pawn"> <bounds x="95" y="18" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="text_knight"> <bounds x="95" y="25" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="text_bishop"> <bounds x="95" y="32" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="text_rook"> <bounds x="95" y="39" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="text_queen"> <bounds x="95" y="46" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="text_king"> <bounds x="95" y="53" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="text_white"> <bounds x="88" y="61" width="10" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_black"> <bounds x="88" y="68" width="10" height="1.8" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="text_check"> <bounds x="91" y="6" width="10" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_your"> <bounds x="98" y="6" width="8" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_cms"> <bounds x="104" y="6" width="8" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_change"> <bounds x="95.3" y="73" width="12" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_board"> <bounds x="103" y="73" width="10" height="1.8" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="text_1"><bounds x="111" y="19" width="2" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_2"><bounds x="111" y="26" width="2" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_3"><bounds x="111" y="33" width="2" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_4"><bounds x="111" y="40" width="2" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_5"><bounds x="111" y="47" width="2" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_6"><bounds x="111" y="54" width="2" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_7"><bounds x="111" y="62" width="2" height="1.8" /></bezel>
|
||||||
|
<bezel element="text_8"><bounds x="111" y="69" width="2" height="1.8" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_i1" element="led"> <bounds x="100" y="19" width="2" height="2" /></bezel>
|
||||||
|
<bezel name="led_i2" element="led"> <bounds x="100" y="26" width="2" height="2" /></bezel>
|
||||||
|
<bezel name="led_i3" element="led"> <bounds x="100" y="33" width="2" height="2" /></bezel>
|
||||||
|
<bezel name="led_i4" element="led"> <bounds x="100" y="40" width="2" height="2" /></bezel>
|
||||||
|
<bezel name="led_i5" element="led"> <bounds x="100" y="47" width="2" height="2" /></bezel>
|
||||||
|
<bezel name="led_i6" element="led"> <bounds x="100" y="54" width="2" height="2" /></bezel>
|
||||||
|
<bezel name="led_i7" element="led"> <bounds x="100" y="61" width="2" height="2" /></bezel>
|
||||||
|
<bezel name="led_i8" element="led"> <bounds x="100" y="68" width="2" height="2" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_j7" element="led"> <bounds x="95" y="8" width="2" height="2" /></bezel>
|
||||||
|
<bezel name="led_j5" element="led"> <bounds x="101" y="8" width="2" height="2" /></bezel>
|
||||||
|
<bezel name="led_j6" element="led"> <bounds x="107" y="8" width="2" height="2" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_j2" element="led"> <bounds x="95" y="12" width="2" height="2" /></bezel>
|
||||||
|
<bezel name="led_j3" element="led"> <bounds x="101" y="12" width="2" height="2" /></bezel>
|
||||||
|
<bezel name="led_j4" element="led"> <bounds x="107" y="12" width="2" height="2" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_j8" element="led"> <bounds x="102.5" y="73" width="2" height="2" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x80"><bounds x="105" y="18" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x40"><bounds x="105" y="25" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x20"><bounds x="105" y="32" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x10"><bounds x="105" y="39" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x08"><bounds x="105" y="46" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x04"><bounds x="105" y="53" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x02"><bounds x="105" y="60" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x01"><bounds x="105" y="67" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="EXTRA" inputmask="0x02"><bounds x="95" y="77" width="4" height="4" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="EXTRA" inputmask="0x01"><bounds x="109" y="77" width="4" height="4" /></bezel>
|
||||||
|
|
||||||
<bezel name="lbl_cb" element="str_changeb">
|
|
||||||
<bounds x="85" y="67" width="10" height="2" />
|
|
||||||
</bezel>
|
|
||||||
</view>
|
</view>
|
||||||
</mamelayout>
|
</mamelayout>
|
||||||
|
589
src/mame/layout/chessmstdm.lay
Normal file
589
src/mame/layout/chessmstdm.lay
Normal file
@ -0,0 +1,589 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<mamelayout version="2">
|
||||||
|
<!-- define elements -->
|
||||||
|
<script>
|
||||||
|
local layout = {}
|
||||||
|
local board
|
||||||
|
local first_sq
|
||||||
|
local enpassant -- en passant possible on next move
|
||||||
|
local enpassant_pos -- position of the piece to be removed
|
||||||
|
|
||||||
|
local port_tags = { ":COL_A", ":COL_B", ":COL_C", ":COL_D", ":COL_E", ":COL_F", ":COL_G", ":COL_H" }
|
||||||
|
local port_values = { }
|
||||||
|
local ports
|
||||||
|
|
||||||
|
local function change_piece_state(pos, new_state)
|
||||||
|
board[pos.y][pos.x] = new_state
|
||||||
|
machine:outputs():set_indexed_value("pos", (pos.y * 10) + pos.x, new_state)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function move_piece(from, to)
|
||||||
|
if board[from.y][from.x] == 0 then
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
-- ignores move on the same position
|
||||||
|
if from.y == to.y and from.x == to.x then
|
||||||
|
change_piece_state(to, board[to.y][to.x])
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
-- if another piece is on the destination position, the first input is used for remove the old piece and the next input is used for move the new piece
|
||||||
|
if board[to.y][to.x] ~= 0 then
|
||||||
|
change_piece_state(to, 0)
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
-- en passant
|
||||||
|
if enpassant and board[to.y][to.x] == 0 and board[from.y][from.x] == 12 and from.y == 4 and to.y == 3 and from.x ~= to.x and board[to.y + 1][to.x] == 6 then
|
||||||
|
enpassant_pos = {x = to.x, y = to.y + 1}
|
||||||
|
elseif enpassant and board[to.y][to.x] == 0 and board[from.y][from.x] == 6 and from.y == 5 and to.y == 6 and from.x ~= to.x and board[to.y - 1][to.x] == 12 then
|
||||||
|
enpassant_pos = {x = to.x, y = to.y - 1}
|
||||||
|
end
|
||||||
|
if board[to.y][to.x] == 0 and from.x == to.x and ((board[from.y][from.x] == 6 and from.y == 2 and to.y == 4) or
|
||||||
|
(board[from.y][from.x] == 12 and from.y == 7 and to.y == 5)) then
|
||||||
|
enpassant = true
|
||||||
|
else
|
||||||
|
enpassant = false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- promotion
|
||||||
|
if (to.y == 8 and board[from.y][from.x] == 6) or (to.y == 1 and board[from.y][from.x] == 12) then
|
||||||
|
change_piece_state(to, board[from.y][from.x] - 4) -- TODO: make this configurable
|
||||||
|
else
|
||||||
|
change_piece_state(to, board[from.y][from.x])
|
||||||
|
end
|
||||||
|
|
||||||
|
change_piece_state(from, 0)
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
function layout.reset()
|
||||||
|
board =
|
||||||
|
{{ 3, 5, 4, 2, 1, 4, 5, 3 },
|
||||||
|
{ 6, 6, 6, 6, 6, 6, 6, 6 },
|
||||||
|
{ 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||||
|
{ 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||||
|
{ 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||||
|
{ 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||||
|
{ 12,12,12,12,12,12,12,12 },
|
||||||
|
{ 9,11,10, 8, 7,10,11, 9 }}
|
||||||
|
|
||||||
|
for y, row in ipairs(board) do
|
||||||
|
for x, cell in ipairs(row) do
|
||||||
|
change_piece_state({x = x, y = y}, board[y][x])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
ports = machine:ioport().ports
|
||||||
|
first_sq = nil
|
||||||
|
enpassant = false
|
||||||
|
enpassant_pos = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
function layout.frame()
|
||||||
|
local value = ports[":EXTRA"]:read()
|
||||||
|
if value & 0x03 == 0x03 then
|
||||||
|
layout.reset()
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
for x, tag in ipairs(port_tags) do
|
||||||
|
local port = ports[tag]
|
||||||
|
if not port then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local newvalue = port:read()
|
||||||
|
if port_values[x] ~= newvalue then
|
||||||
|
port_values[x] = newvalue
|
||||||
|
for y = 8, 1, -1 do
|
||||||
|
if newvalue & 1 == 0 then
|
||||||
|
if enpassant_pos and enpassant_pos.x == x and enpassant_pos.y == y then
|
||||||
|
change_piece_state(enpassant_pos, 0)
|
||||||
|
enpassant = false
|
||||||
|
enpassant_pos = nil
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if not first_sq then
|
||||||
|
if board[y][x] ~= 0 then
|
||||||
|
first_sq = {x = x, y = y}
|
||||||
|
machine:outputs():set_indexed_value("pos", (y * 10) + x, board[y][x] | 0x10)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if move_piece(first_sq, {x = x, y = y}) == 1 then
|
||||||
|
first_sq = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
newvalue = newvalue >> 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return layout, "chessmstdm"
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<element name="black_rect">
|
||||||
|
<rect>
|
||||||
|
<color red="0.0" green="0.0" blue="0.0" />
|
||||||
|
</rect>
|
||||||
|
</element>
|
||||||
|
<element name="digit" defstate="0">
|
||||||
|
<led16segsc>
|
||||||
|
<color red="0.5" green="1.0" blue="0.0" />
|
||||||
|
</led16segsc>
|
||||||
|
</element>
|
||||||
|
<element name="led" defstate="1">
|
||||||
|
<disk state="0">
|
||||||
|
<color red="0.95" green="0.0" blue="0.0" />
|
||||||
|
</disk>
|
||||||
|
<disk state="1">
|
||||||
|
<color red="0.20" green="0.0" blue="0.0" />
|
||||||
|
</disk>
|
||||||
|
</element>
|
||||||
|
<element name="hl" defstate="0">
|
||||||
|
<text string=" ">
|
||||||
|
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||||
|
<color red="0.0" green="0.0" blue="0.0" />
|
||||||
|
</text>
|
||||||
|
<disk state="1">
|
||||||
|
<bounds x="0.12" y="0.12" width="0.76" height="0.76" />
|
||||||
|
<color red="1.0" green="1.0" blue="1.0" />
|
||||||
|
</disk>
|
||||||
|
</element>
|
||||||
|
<element name="hlb" defstate="0">
|
||||||
|
<disk state="0">
|
||||||
|
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||||
|
<color red="0.0" green="0.0" blue="0.0" />
|
||||||
|
</disk>
|
||||||
|
<disk state="1">
|
||||||
|
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||||
|
<color red="0.4" green="0.4" blue="0.4" />
|
||||||
|
</disk>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
<element name="black"><rect><color red="0.44" green="0.08" blue="0.01" /></rect></element>
|
||||||
|
<element name="white"><rect><color red="1.00" green="0.88" blue="0.55" /></rect></element>
|
||||||
|
|
||||||
|
<element name="text_1"> <text string="1"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
<element name="text_2"> <text string="2"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
<element name="text_3"> <text string="3"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
<element name="text_4"> <text string="4"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
<element name="text_5"> <text string="5"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
<element name="text_6"> <text string="6"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
<element name="text_7"> <text string="7"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
<element name="text_8"> <text string="8"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
|
||||||
|
<element name="text_a"> <text string="A"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
<element name="text_b"> <text string="B"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
<element name="text_c"> <text string="C"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
<element name="text_d"> <text string="D"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
<element name="text_e"> <text string="E"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
<element name="text_f"> <text string="F"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
<element name="text_g"> <text string="G"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
<element name="text_h"> <text string="H"><color red="0.01" green="0.01" blue="0.01" /></text> </element>
|
||||||
|
|
||||||
|
<element name="text_chessmaster"> <text string="CHESS-MASTER" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_diamond"> <text string="diamond" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_monitor"> <text string="MONITOR" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_view"> <text string="VIEW" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_reset"> <text string="RESET" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_selection"> <text string="SELECTION" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_dialogue"> <text string="DIALOGUE" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_function"> <text string="FUNCTION" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_notation"> <text string="NOTATION" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_parameter"> <text string="PARAMETER" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_information"> <text string="INFORMATION" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_board"> <text string="BOARD" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_match"> <text string="MATCH" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_time"> <text string="TIME" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_enter"> <text string="ENTER" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_playmode"> <text string="PLAYMODE" align="1"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_move_fore"> <text string="MOVE FORE" align="0"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
<element name="text_move_back"> <text string="MOVE BACK" align="0"><color red="0.17" green="0.15" blue="0.15" /></text> </element>
|
||||||
|
|
||||||
|
<element name="piece" defstate="0">
|
||||||
|
<text string="♚" state="1"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
|
<text string="♛" state="2"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
|
<text string="♜" state="3"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
|
<text string="♝" state="4"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
|
<text string="♞" state="5"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
|
<text string="♟" state="6"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
|
|
||||||
|
<text string="♚" state="7"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
|
<text string="♛" state="8"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
|
<text string="♜" state="9"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
|
<text string="♝" state="10"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
|
<text string="♞" state="11"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
|
<text string="♟" state="12"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
|
|
||||||
|
<!-- selected pieces -->
|
||||||
|
<disk state="17"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
|
<disk state="18"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
|
<disk state="19"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
|
<disk state="20"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
|
<disk state="21"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
|
<disk state="22"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
|
<disk state="23"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
|
<disk state="24"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
|
<disk state="25"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
|
<disk state="26"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
|
<disk state="27"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
|
<disk state="28"> <color red="1.00" green="0.25" blue="1.00" /> </disk>
|
||||||
|
|
||||||
|
<text string="♚" state="17"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
|
<text string="♛" state="18"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
|
<text string="♜" state="19"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
|
<text string="♝" state="20"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
|
<text string="♞" state="21"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
|
<text string="♟" state="22"><color red="0.27" green="0.25" blue="0.25" /></text>
|
||||||
|
|
||||||
|
<text string="♚" state="23"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
|
<text string="♛" state="24"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
|
<text string="♜" state="25"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
|
<text string="♝" state="26"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
|
<text string="♞" state="27"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
|
<text string="♟" state="28"><color red="0.71" green="0.7" blue="0.69" /></text>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
<!-- build screen -->
|
||||||
|
|
||||||
|
<view name="Internal Layout">
|
||||||
|
<bounds left="-2" right="117.5" top="-2" bottom="88" />
|
||||||
|
|
||||||
|
<bezel element="white"><bounds x="-2.5" y="-2" width="120" height="90.5" /></bezel>
|
||||||
|
|
||||||
|
<!-- chessboard coords -->
|
||||||
|
|
||||||
|
<bezel element="text_8"><bounds x="-0.8" y="7" width="2" height="2" /></bezel>
|
||||||
|
<bezel element="text_7"><bounds x="-0.8" y="17" width="2" height="2" /></bezel>
|
||||||
|
<bezel element="text_6"><bounds x="-0.8" y="27" width="2" height="2" /></bezel>
|
||||||
|
<bezel element="text_5"><bounds x="-0.8" y="37" width="2" height="2" /></bezel>
|
||||||
|
<bezel element="text_4"><bounds x="-0.8" y="47" width="2" height="2" /></bezel>
|
||||||
|
<bezel element="text_3"><bounds x="-0.8" y="57" width="2" height="2" /></bezel>
|
||||||
|
<bezel element="text_2"><bounds x="-0.8" y="67" width="2" height="2" /></bezel>
|
||||||
|
<bezel element="text_1"><bounds x="-0.8" y="77" width="2" height="2" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="text_a"><bounds x="7" y="85" width="2" height="2" /></bezel>
|
||||||
|
<bezel element="text_b"><bounds x="17" y="85" width="2" height="2" /></bezel>
|
||||||
|
<bezel element="text_c"><bounds x="27" y="85" width="2" height="2" /></bezel>
|
||||||
|
<bezel element="text_d"><bounds x="37" y="85" width="2" height="2" /></bezel>
|
||||||
|
<bezel element="text_e"><bounds x="47" y="85" width="2" height="2" /></bezel>
|
||||||
|
<bezel element="text_f"><bounds x="57" y="85" width="2" height="2" /></bezel>
|
||||||
|
<bezel element="text_g"><bounds x="67" y="85" width="2" height="2" /></bezel>
|
||||||
|
<bezel element="text_h"><bounds x="77" y="85" width="2" height="2" /></bezel>
|
||||||
|
|
||||||
|
<!-- chessboard bezel -->
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="2" y="2" width="82" height="82" /></bezel>
|
||||||
|
<bezel element="white"><bounds x="3" y="3" width="80" height="80" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="13" y="2.5" width="10" height="10.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="33" y="2.5" width="10" height="10.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="53" y="2.5" width="10" height="10.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="73" y="2.5" width="10.5" height="10.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="2.5" y="13" width="10.5" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="23" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="43" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="63" y="13" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="13" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="33" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="53" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="73" y="23" width="10.5" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="2.5" y="33" width="10.5" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="23" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="43" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="63" y="33" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="13" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="33" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="53" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="73" y="43" width="10.5" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="2.5" y="53" width="10.5" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="23" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="43" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="63" y="53" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="13" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="33" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="53" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="73" y="63" width="10.5" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="black"><bounds x="2.5" y="73" width="10.5" height="10.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="23" y="73" width="10" height="10.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="43" y="73" width="10" height="10.5" /></bezel>
|
||||||
|
<bezel element="black"><bounds x="63" y="73" width="10" height="10.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos11" element="piece"><bounds x="3" y="3" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos12" element="piece"><bounds x="13" y="3" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos13" element="piece"><bounds x="23" y="3" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos14" element="piece"><bounds x="33" y="3" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos15" element="piece"><bounds x="43" y="3" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos16" element="piece"><bounds x="53" y="3" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos17" element="piece"><bounds x="63" y="3" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos18" element="piece"><bounds x="73" y="3" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos21" element="piece"><bounds x="3" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos22" element="piece"><bounds x="13" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos23" element="piece"><bounds x="23" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos24" element="piece"><bounds x="33" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos25" element="piece"><bounds x="43" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos26" element="piece"><bounds x="53" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos27" element="piece"><bounds x="63" y="13" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos28" element="piece"><bounds x="73" y="13" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos31" element="piece"><bounds x="3" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos32" element="piece"><bounds x="13" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos33" element="piece"><bounds x="23" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos34" element="piece"><bounds x="33" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos35" element="piece"><bounds x="43" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos36" element="piece"><bounds x="53" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos37" element="piece"><bounds x="63" y="23" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos38" element="piece"><bounds x="73" y="23" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos41" element="piece"><bounds x="3" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos42" element="piece"><bounds x="13" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos43" element="piece"><bounds x="23" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos44" element="piece"><bounds x="33" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos45" element="piece"><bounds x="43" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos46" element="piece"><bounds x="53" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos47" element="piece"><bounds x="63" y="33" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos48" element="piece"><bounds x="73" y="33" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos51" element="piece"><bounds x="3" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos52" element="piece"><bounds x="13" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos53" element="piece"><bounds x="23" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos54" element="piece"><bounds x="33" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos55" element="piece"><bounds x="43" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos56" element="piece"><bounds x="53" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos57" element="piece"><bounds x="63" y="43" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos58" element="piece"><bounds x="73" y="43" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos61" element="piece"><bounds x="3" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos62" element="piece"><bounds x="13" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos63" element="piece"><bounds x="23" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos64" element="piece"><bounds x="33" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos65" element="piece"><bounds x="43" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos66" element="piece"><bounds x="53" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos67" element="piece"><bounds x="63" y="53" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos68" element="piece"><bounds x="73" y="53" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos71" element="piece"><bounds x="3" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos72" element="piece"><bounds x="13" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos73" element="piece"><bounds x="23" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos74" element="piece"><bounds x="33" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos75" element="piece"><bounds x="43" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos76" element="piece"><bounds x="53" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos77" element="piece"><bounds x="63" y="63" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos78" element="piece"><bounds x="73" y="63" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="pos81" element="piece"><bounds x="3" y="73" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos82" element="piece"><bounds x="13" y="73" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos83" element="piece"><bounds x="23" y="73" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos84" element="piece"><bounds x="33" y="73" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos85" element="piece"><bounds x="43" y="73" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos86" element="piece"><bounds x="53" y="73" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos87" element="piece"><bounds x="63" y="73" width="10" height="10" /></bezel>
|
||||||
|
<bezel name="pos88" element="piece"><bounds x="73" y="73" width="10" height="10" /></bezel>
|
||||||
|
|
||||||
|
<!-- chessboard leds -->
|
||||||
|
|
||||||
|
<bezel name="led_a1" element="led"><bounds x="3.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b1" element="led"><bounds x="13.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c1" element="led"><bounds x="23.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d1" element="led"><bounds x="33.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e1" element="led"><bounds x="43.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f1" element="led"><bounds x="53.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g1" element="led"><bounds x="63.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h1" element="led"><bounds x="73.2" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_a2" element="led"><bounds x="3.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b2" element="led"><bounds x="13.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c2" element="led"><bounds x="23.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d2" element="led"><bounds x="33.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e2" element="led"><bounds x="43.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f2" element="led"><bounds x="53.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g2" element="led"><bounds x="63.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h2" element="led"><bounds x="73.2" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_a3" element="led"><bounds x="3.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b3" element="led"><bounds x="13.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c3" element="led"><bounds x="23.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d3" element="led"><bounds x="33.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e3" element="led"><bounds x="43.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f3" element="led"><bounds x="53.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g3" element="led"><bounds x="63.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h3" element="led"><bounds x="73.2" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_a4" element="led"><bounds x="3.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b4" element="led"><bounds x="13.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c4" element="led"><bounds x="23.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d4" element="led"><bounds x="33.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e4" element="led"><bounds x="43.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f4" element="led"><bounds x="53.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g4" element="led"><bounds x="63.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h4" element="led"><bounds x="73.2" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_a5" element="led"><bounds x="3.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b5" element="led"><bounds x="13.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c5" element="led"><bounds x="23.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d5" element="led"><bounds x="33.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e5" element="led"><bounds x="43.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f5" element="led"><bounds x="53.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g5" element="led"><bounds x="63.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h5" element="led"><bounds x="73.2" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_a6" element="led"><bounds x="3.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b6" element="led"><bounds x="13.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c6" element="led"><bounds x="23.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d6" element="led"><bounds x="33.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e6" element="led"><bounds x="43.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f6" element="led"><bounds x="53.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g6" element="led"><bounds x="63.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h6" element="led"><bounds x="73.2" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_a7" element="led"><bounds x="3.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b7" element="led"><bounds x="13.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c7" element="led"><bounds x="23.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d7" element="led"><bounds x="33.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e7" element="led"><bounds x="43.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f7" element="led"><bounds x="53.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g7" element="led"><bounds x="63.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h7" element="led"><bounds x="73.2" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="led_a8" element="led"><bounds x="3.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_b8" element="led"><bounds x="13.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_c8" element="led"><bounds x="23.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_d8" element="led"><bounds x="33.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_e8" element="led"><bounds x="43.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_f8" element="led"><bounds x="53.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_g8" element="led"><bounds x="63.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
<bezel name="led_h8" element="led"><bounds x="73.2" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||||
|
|
||||||
|
<!-- chessboard sensors -->
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x80"><bounds x="3" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x80"><bounds x="13" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x80"><bounds x="23" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x80"><bounds x="33" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x80"><bounds x="43" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x80"><bounds x="53" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x80"><bounds x="63" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x80"><bounds x="73" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x40"><bounds x="3" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x40"><bounds x="13" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x40"><bounds x="23" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x40"><bounds x="33" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x40"><bounds x="43" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x40"><bounds x="53" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x40"><bounds x="63" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x40"><bounds x="73" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x20"><bounds x="3" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x20"><bounds x="13" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x20"><bounds x="23" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x20"><bounds x="33" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x20"><bounds x="43" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x20"><bounds x="53" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x20"><bounds x="63" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x20"><bounds x="73" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x10"><bounds x="3" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x10"><bounds x="13" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x10"><bounds x="23" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x10"><bounds x="33" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x10"><bounds x="43" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x10"><bounds x="53" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x10"><bounds x="63" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x10"><bounds x="73" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x08"><bounds x="3" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x08"><bounds x="13" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x08"><bounds x="23" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x08"><bounds x="33" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x08"><bounds x="43" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x08"><bounds x="53" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x08"><bounds x="63" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x08"><bounds x="73" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x04"><bounds x="3" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x04"><bounds x="13" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x04"><bounds x="23" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x04"><bounds x="33" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x04"><bounds x="43" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x04"><bounds x="53" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x04"><bounds x="63" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x04"><bounds x="73" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x02"><bounds x="3" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x02"><bounds x="13" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x02"><bounds x="23" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x02"><bounds x="33" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x02"><bounds x="43" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x02"><bounds x="53" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x02"><bounds x="63" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x02"><bounds x="73" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
|
||||||
|
<bezel element="hl" inputtag="COL_A" inputmask="0x01"><bounds x="3" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_B" inputmask="0x01"><bounds x="13" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_C" inputmask="0x01"><bounds x="23" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_D" inputmask="0x01"><bounds x="33" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_E" inputmask="0x01"><bounds x="43" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_F" inputmask="0x01"><bounds x="53" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_G" inputmask="0x01"><bounds x="63" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||||
|
<bezel element="hl" inputtag="COL_H" inputmask="0x01"><bounds x="73" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||||
|
|
||||||
|
<!-- right side -->
|
||||||
|
|
||||||
|
<bezel element="text_chessmaster"><bounds x="89" y="12" width="22" height="2.8" /></bezel>
|
||||||
|
<bezel element="text_diamond"> <bounds x="106" y="15" width="14" height="2.5" /></bezel>
|
||||||
|
<bezel element="text_monitor"> <bounds x="91" y="19.5" width="14" height="2" /></bezel>
|
||||||
|
<bezel element="text_view"> <bounds x="91" y="26.5" width="8" height="2" /></bezel>
|
||||||
|
<bezel element="text_reset"> <bounds x="99" y="23.0" width="10" height="2" /></bezel>
|
||||||
|
<bezel element="text_function"> <bounds x="91" y="32.3" width="16" height="2" /></bezel>
|
||||||
|
<bezel element="text_notation"> <bounds x="91" y="34.7" width="16" height="2" /></bezel>
|
||||||
|
<bezel element="text_selection"> <bounds x="91" y="39.3" width="18" height="2" /></bezel>
|
||||||
|
<bezel element="text_dialogue"> <bounds x="91" y="41.7" width="16" height="2" /></bezel>
|
||||||
|
<bezel element="text_parameter"> <bounds x="91" y="46.3" width="18" height="2" /></bezel>
|
||||||
|
<bezel element="text_information"><bounds x="91" y="48.7" width="22" height="2" /></bezel>
|
||||||
|
<bezel element="text_match"> <bounds x="91" y="53.3" width="10" height="2" /></bezel>
|
||||||
|
<bezel element="text_time"> <bounds x="91" y="55.7" width="8" height="2" /></bezel>
|
||||||
|
<bezel element="text_board"> <bounds x="91" y="61.5" width="10" height="2" /></bezel>
|
||||||
|
<bezel element="text_enter"> <bounds x="91" y="68.5" width="10" height="2" /></bezel>
|
||||||
|
<bezel element="text_move_back"> <bounds x="87" y="83" width="18" height="2" /></bezel>
|
||||||
|
<bezel element="text_move_fore"> <bounds x="101" y="83" width="18" height="2" /></bezel>
|
||||||
|
<bezel element="text_playmode"> <bounds x="92" y="73" width="16" height="2" /></bezel>
|
||||||
|
|
||||||
|
<bezel name="monitor_led" element="led"> <bounds x="101" y="19.63" width="1.5" height="1.5" /> </bezel>
|
||||||
|
<bezel name="playmode_led" element="led"> <bounds x="103" y="73.13" width="1.5" height="1.5" /> </bezel>
|
||||||
|
<bezel name="reset_line0" element="black_rect"> <bounds x="107.4" y="23.2" width="0.2" height="1.6" /> </bezel>
|
||||||
|
<bezel name="reset_line1" element="black_rect"> <bounds x="104.7" y="24.0" width="2.9" height="0.2" /> </bezel>
|
||||||
|
|
||||||
|
<bezel element="hlb" inputtag="EXTRA" inputmask="0x01"><bounds x="105" y="18" width="5" height="5" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="EXTRA" inputmask="0x02"><bounds x="105" y="25" width="5" height="5" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x40"><bounds x="105" y="32" width="5" height="5" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x20"><bounds x="105" y="39" width="5" height="5" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x10"><bounds x="105" y="46" width="5" height="5" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x08"><bounds x="105" y="53" width="5" height="5" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x04"><bounds x="105" y="60" width="5" height="5" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x80"><bounds x="105" y="67" width="5" height="5" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x02"><bounds x="94" y="77" width="5" height="5" /></bezel>
|
||||||
|
<bezel element="hlb" inputtag="BUTTONS" inputmask="0x01"><bounds x="108" y="77" width="5" height="5" /></bezel>
|
||||||
|
|
||||||
|
<!-- panel 16seg leds -->
|
||||||
|
|
||||||
|
<bezel name="display_background" element="black_rect"> <bounds x="89" y="2" width="26" height="9.2" /> </bezel>
|
||||||
|
<bezel name="digit3" element="digit"> <bounds x="90" y="2.5" width="5.66" height="8.5" /></bezel>
|
||||||
|
<bezel name="digit2" element="digit"> <bounds x="96" y="2.5" width="5.66" height="8.5" /></bezel>
|
||||||
|
<bezel name="digit1" element="digit"> <bounds x="102" y="2.5" width="5.66" height="8.5" /></bezel>
|
||||||
|
<bezel name="digit0" element="digit"> <bounds x="108" y="2.5" width="5.66" height="8.5" /></bezel>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</mamelayout>
|
@ -9352,6 +9352,7 @@ cheekyms // 8004 (c) [1980?]
|
|||||||
@source:chessmst.cpp
|
@source:chessmst.cpp
|
||||||
chessmst //
|
chessmst //
|
||||||
chessmsta //
|
chessmsta //
|
||||||
|
chessmstdm //
|
||||||
|
|
||||||
@source:chesstrv.cpp
|
@source:chesstrv.cpp
|
||||||
borisdpl //
|
borisdpl //
|
||||||
@ -14230,12 +14231,14 @@ tour4000 // (c) 2000 High Video
|
|||||||
tour4010 // (c) 2000 High Video
|
tour4010 // (c) 2000 High Video
|
||||||
|
|
||||||
@source:hikaru.cpp
|
@source:hikaru.cpp
|
||||||
airtrix // 2001.02 Air Trix
|
airtrix // 2001.02 Air Trix (Rev A)
|
||||||
|
airtrixo // 2001.02 Air Trix (original)
|
||||||
braveff // 1999.06 Syouboushi Brave Fire Fighters
|
braveff // 1999.06 Syouboushi Brave Fire Fighters
|
||||||
hikaru // 2000.?? Hikaru BIOS
|
hikaru // 2000.?? Hikaru BIOS
|
||||||
pharrier // 2000.12 Planet Harriers
|
pharrier // 2000.12 Planet Harriers (Rev A)
|
||||||
podrace // 2000.06 Star Wars: Racer Arcade
|
podrace // 2000.06 Star Wars: Racer Arcade
|
||||||
sgnascar // 2000.09 Nascar Arcade
|
sgnascar // 2000.10 Nascar Arcade (Rev A)
|
||||||
|
sgnascaro // 2000.09 Nascar Arcade (original)
|
||||||
|
|
||||||
@source:himesiki.cpp
|
@source:himesiki.cpp
|
||||||
himesiki // (c) 1989 Hi-Soft
|
himesiki // (c) 1989 Hi-Soft
|
||||||
|
@ -180,7 +180,7 @@ UINT32 rollrace_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap
|
|||||||
sx = offs % 32;
|
sx = offs % 32;
|
||||||
sy = offs / 32;
|
sy = offs / 32;
|
||||||
|
|
||||||
scroll = ( 8 * sy + m_colorram[2 * sx] ) % 256;
|
scroll = ( 8 * sy - m_colorram[2 * sx] ) % 256;
|
||||||
col = m_colorram[ sx * 2 + 1 ]&0x1f;
|
col = m_colorram[ sx * 2 + 1 ]&0x1f;
|
||||||
|
|
||||||
if (!m_flipy)
|
if (!m_flipy)
|
||||||
|
@ -157,10 +157,11 @@ WRITE8_MEMBER(superqix_state::superqix_0410_w)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* bit 2 selects which of the two bitmaps to display (for 2 players game) */
|
/* bit 2 selects which of the two bitmaps to display (for 2 players game) */
|
||||||
m_show_bitmap = (data & 0x04) >> 2;
|
m_show_bitmap = BIT(data,2);
|
||||||
|
|
||||||
/* bit 3 enables NMI */
|
/* bit 3 enables NMI */
|
||||||
m_nmi_mask = data & 0x08;
|
m_nmi_mask = BIT(data,3);
|
||||||
|
//if (!(m_nmi_mask)) m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); // test for later, could this explain the need for 4 NMIs per frame instead of one? Is the game manually retriggering NMI using the mask register, several times during the vblank period?
|
||||||
|
|
||||||
/* bits 4-5 control ROM bank */
|
/* bits 4-5 control ROM bank */
|
||||||
membank("bank1")->set_entry((data & 0x30) >> 4);
|
membank("bank1")->set_entry((data & 0x30) >> 4);
|
||||||
|
Loading…
Reference in New Issue
Block a user