Systems promoted to working

---------------------------
Sapphire (Novag) [hap, Berger]
This commit is contained in:
hap 2024-07-11 21:15:09 +02:00
parent df8be62800
commit 2d8233a36f
3 changed files with 207 additions and 9 deletions

View File

@ -16,7 +16,7 @@ license:CC0-1.0
<sharedfeat name="compatibility" value="egr"/>
<part name="extrom" interface="saitek_egr">
<dataarea name="rom" size="0x8000">
<rom name="egr.bin" size="0x8000" crc="1f9800c8" sha1="6147ad3de65b897fa5f6ab06b2f8597403d6e32e" />
<rom name="egr_c10_u4" size="0x8000" crc="1f9800c8" sha1="6147ad3de65b897fa5f6ab06b2f8597403d6e32e" />
</dataarea>
</part>
</software>

View File

@ -0,0 +1,199 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
authors:hap
-->
<mamelayout version="2">
<!-- define elements -->
<element name="grayd"><disk><color red="0.21" green="0.2" blue="0.2" /></disk></element>
<element name="redd"><disk><color red="0.85" green="0.35" blue="0.2" /></disk></element>
<element name="white"><rect><color red="0.86" green="0.85" blue="0.85" /></rect></element>
<element name="gray2"><rect><color red="0.21" green="0.2" blue="0.2" /></rect></element>
<element name="lcdm"><rect><color red="0.7" green="0.71" blue="0.72" /></rect></element>
<element name="triangle">
<image><data><![CDATA[
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="10" height="10">
<path d="M 5,0 10,10 0,10 z" fill="#99e6e6" stroke="none" stroke-width="0" />
</svg>
]]></data></image>
</element>
<element name="hlb" defstate="0">
<disk state="1"><color red="0.1" green="0.1" blue="0.1" /></disk>
</element>
<element name="hlb2" defstate="0">
<disk state="1"><color red="0.77" green="0.77" blue="0.77" /></disk>
</element>
<element name="text_b1"><text string="A 1"><color red="0.6" green="0.9" blue="0.9" /></text></element>
<element name="text_b2"><text string="B 2"><color red="0.6" green="0.9" blue="0.9" /></text></element>
<element name="text_b3"><text string="C 3"><color red="0.6" green="0.9" blue="0.9" /></text></element>
<element name="text_b4"><text string="D 4"><color red="0.6" green="0.9" blue="0.9" /></text></element>
<element name="text_b5"><text string="E 5"><color red="0.6" green="0.9" blue="0.9" /></text></element>
<element name="text_b6"><text string="F 6"><color red="0.6" green="0.9" blue="0.9" /></text></element>
<element name="text_b7"><text string="G 7"><color red="0.6" green="0.9" blue="0.9" /></text></element>
<element name="text_b8"><text string="H 8"><color red="0.6" green="0.9" blue="0.9" /></text></element>
<element name="text_bng"><text string="NG"><color red="0.93" green="0.92" blue="0.92" /></text></element>
<element name="text_bc1"><text string="C"><color red="0.86" green="0.85" blue="0.85" /></text></element>
<element name="text_bc2"><text string="C B"><color red="0.86" green="0.85" blue="0.85" /></text></element>
<element name="text_bgo"><text string="GO"><color red="0.86" green="0.85" blue="0.85" /></text></element>
<element name="text_p1"><image file="chess/wp.svg"><color alpha="0.67" /></image></element>
<element name="text_p2"><image file="chess/wn.svg"><color alpha="0.67" /></image></element>
<element name="text_p3"><image file="chess/wb.svg"><color alpha="0.67" /></image></element>
<element name="text_p4"><image file="chess/wr.svg"><color alpha="0.67" /></image></element>
<element name="text_p5"><image file="chess/wq.svg"><color alpha="0.67" /></image></element>
<element name="text_p6"><image file="chess/wk.svg"><color alpha="0.67" /></image></element>
<element name="text_w1"><text string="Ver/Set"><color red="0.86" green="0.85" blue="0.85" /></text></element>
<element name="text_w2"><text string="Option 1/2"><color red="0.86" green="0.85" blue="0.85" /></text></element>
<element name="text_w3"><text string="Load Game"><color red="0.86" green="0.85" blue="0.85" /></text></element>
<element name="text_w4"><text string="Save Game"><color red="0.86" green="0.85" blue="0.85" /></text></element>
<element name="text_w5"><text string="Training"><color red="0.86" green="0.85" blue="0.85" /></text></element>
<element name="text_w6"><text string="Color"><color red="0.86" green="0.85" blue="0.85" /></text></element>
<element name="text_w7"><text string="Hint"><color red="0.86" green="0.85" blue="0.85" /></text></element>
<element name="text_w8"><text string="Referee"><color red="0.86" green="0.85" blue="0.85" /></text></element>
<element name="text_w9"><text string="Sound"><color red="0.86" green="0.85" blue="0.85" /></text></element>
<element name="text_w10"><text string="Info"><color red="0.86" green="0.85" blue="0.85" /></text></element>
<element name="text_w11"><text string="Level"><color red="0.86" green="0.85" blue="0.85" /></text></element>
<element name="text_r1"><text string="Random"><color red="0.85" green="0.35" blue="0.2" /></text></element>
<element name="text_r2"><text string="ProDelete"><color red="0.85" green="0.35" blue="0.2" /></text></element>
<element name="text_r3"><text string="ProSave"><color red="0.85" green="0.35" blue="0.2" /></text></element>
<element name="text_r4"><text string="ProPrior"><color red="0.85" green="0.35" blue="0.2" /></text></element>
<element name="text_r5"><text string="Analyze"><color red="0.85" green="0.35" blue="0.2" /></text></element>
<element name="text_r6"><text string="ProPrint"><color red="0.85" green="0.35" blue="0.2" /></text></element>
<element name="text_r7"><text string="BkSelect"><color red="0.85" green="0.35" blue="0.2" /></text></element>
<element name="text_r8"><text string="Restore"><color red="0.85" green="0.35" blue="0.2" /></text></element>
<element name="text_r9"><text string="Next Best"><color red="0.85" green="0.35" blue="0.2" /></text></element>
<element name="text_r10"><text string="Easy"><color red="0.85" green="0.35" blue="0.2" /></text></element>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="4" right="66" top="-19" bottom="59" />
<element ref="gray2"><bounds xc="35" y="1" width="62" height="0.3" /></element>
<screen index="0"><bounds xc="35" yc="-9" width="40" height="12.62" /></screen>
<element ref="lcdm" blend="multiply"><bounds xc="35" yc="-9" width="40.5" height="13.12" /></element>
<!-- buttons base -->
<element ref="grayd"><bounds xc="10" yc="10" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="20" yc="10" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="30" yc="10" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="40" yc="10" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="50" yc="10" width="5.3" height="5.3" /></element>
<element ref="redd"><bounds xc="60" yc="10" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="10" yc="20" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="20" yc="20" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="30" yc="20" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="40" yc="20" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="50" yc="20" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="60" yc="20" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="15" yc="30" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="25" yc="30" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="35" yc="30" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="45" yc="30" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="55" yc="30" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="20" yc="40" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="30" yc="40" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="40" yc="40" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="50" yc="40" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="25" yc="50" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="35" yc="50" width="5.3" height="5.3" /></element>
<element ref="grayd"><bounds xc="45" yc="50" width="5.3" height="5.3" /></element>
<element ref="text_b1"><bounds xc="10" yc="9.95" width="6" height="3.1" /></element>
<element ref="text_b2"><bounds xc="20" yc="9.95" width="6" height="3.1" /></element>
<element ref="text_b3"><bounds xc="30" yc="9.95" width="6" height="3.1" /></element>
<element ref="text_b4"><bounds xc="40" yc="9.95" width="6" height="3.1" /></element>
<element ref="text_b5"><bounds xc="10" yc="19.95" width="6" height="3.1" /></element>
<element ref="text_b6"><bounds xc="20" yc="19.95" width="6" height="3.1" /></element>
<element ref="text_b7"><bounds xc="30" yc="19.95" width="6" height="3.1" /></element>
<element ref="text_b8"><bounds xc="40" yc="19.95" width="6" height="3.1" /></element>
<element ref="text_bng"><bounds xc="60" yc="9.95" width="6" height="3.1" /></element>
<element ref="text_bgo"><bounds xc="45" yc="49.95" width="6" height="3.1" /></element>
<element ref="white"><bounds xc="60" yc="20" width="1.7" height="0.15" /></element>
<element ref="text_bc1"><bounds xc="60" yc="18.85" width="6" height="2.1" /></element>
<element ref="text_bc2"><bounds xc="60" yc="21.05" width="6" height="2.1" /></element>
<element ref="text_p1" blend="add"><bounds xc="15" yc="29.9" width="4" height="4" /></element>
<element ref="text_p2" blend="add"><bounds xc="25" yc="29.9" width="4" height="4" /></element>
<element ref="text_p3" blend="add"><bounds xc="35" yc="29.9" width="4" height="4" /></element>
<element ref="text_p4" blend="add"><bounds xc="20" yc="39.9" width="4" height="4" /></element>
<element ref="text_p5" blend="add"><bounds xc="30" yc="39.9" width="4" height="4" /></element>
<element ref="text_p6" blend="add"><bounds xc="40" yc="39.9" width="4" height="4" /></element>
<element ref="triangle"><bounds xc="24.6" yc="50" width="2.5" height="2.8" /><orientation rotate="270" /></element>
<element ref="triangle"><bounds xc="35.4" yc="50" width="2.5" height="2.8" /><orientation rotate="90" /></element>
<!-- button masks -->
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x80"><bounds xc="10" yc="10" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x40"><bounds xc="20" yc="10" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x20"><bounds xc="30" yc="10" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x10"><bounds xc="40" yc="10" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.0" inputmask="0x20"><bounds xc="50" yc="10" width="5.3" height="5.3" /></element>
<element ref="hlb2" blend="multiply" inputtag="IN.0" inputmask="0x01"><bounds xc="60" yc="10" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x08"><bounds xc="10" yc="20" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x04"><bounds xc="20" yc="20" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x02"><bounds xc="30" yc="20" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x01"><bounds xc="40" yc="20" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.0" inputmask="0x04"><bounds xc="50" yc="20" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.0" inputmask="0x02"><bounds xc="60" yc="20" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x01"><bounds xc="15" yc="30" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x02"><bounds xc="25" yc="30" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x04"><bounds xc="35" yc="30" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x80"><bounds xc="45" yc="30" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.0" inputmask="0x10"><bounds xc="55" yc="30" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x08"><bounds xc="20" yc="40" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x10"><bounds xc="30" yc="40" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x20"><bounds xc="40" yc="40" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.0" inputmask="0x08"><bounds xc="50" yc="40" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x40"><bounds xc="25" yc="50" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.0" inputmask="0x40"><bounds xc="35" yc="50" width="5.3" height="5.3" /></element>
<element ref="hlb" blend="add" inputtag="IN.0" inputmask="0x80"><bounds xc="45" yc="50" width="5.3" height="5.3" /></element>
<!-- labels under -->
<element ref="text_w1"><bounds xc="50" y="13" width="10" height="1.75" /></element>
<element ref="text_w2"><bounds xc="50" y="23" width="10" height="1.75" /></element>
<element ref="text_w3"><bounds xc="15" y="33" width="10" height="1.75" /></element>
<element ref="text_w4"><bounds xc="25" y="33" width="10" height="1.75" /></element>
<element ref="text_w5"><bounds xc="35" y="33" width="10" height="1.75" /></element>
<element ref="text_w6"><bounds xc="45" y="33" width="10" height="1.75" /></element>
<element ref="text_w7"><bounds xc="55" y="33" width="10" height="1.75" /></element>
<element ref="text_w8"><bounds xc="20" y="43" width="10" height="1.75" /></element>
<element ref="text_w9"><bounds xc="30" y="43" width="10" height="1.75" /></element>
<element ref="text_w10"><bounds xc="40" y="43" width="10" height="1.75" /></element>
<element ref="text_w11"><bounds xc="50" y="43" width="10" height="1.75" /></element>
<element ref="text_r1"><bounds xc="50" y="24.55" width="10" height="1.75" /></element>
<element ref="text_r2"><bounds xc="15" y="34.55" width="10" height="1.75" /></element>
<element ref="text_r3"><bounds xc="25" y="34.55" width="10" height="1.75" /></element>
<element ref="text_r4"><bounds xc="35" y="34.55" width="10" height="1.75" /></element>
<element ref="text_r5"><bounds xc="55" y="34.55" width="10" height="1.75" /></element>
<element ref="text_r6"><bounds xc="20" y="44.55" width="10" height="1.75" /></element>
<element ref="text_r7"><bounds xc="30" y="44.55" width="10" height="1.75" /></element>
<element ref="text_r8"><bounds xc="40" y="44.55" width="10" height="1.75" /></element>
<element ref="text_r9"><bounds xc="25" y="53" width="10" height="1.75" /></element>
<element ref="text_r10"><bounds xc="35" y="53" width="10" height="1.75" /></element>
</view>
</mamelayout>

View File

@ -3,19 +3,18 @@
// thanks-to:Berger
/*******************************************************************************
Novag Sapphire
Novag Sapphire (model 9304)
Hardware notes:
- PCB label: 100168 REV A
- Hitachi H8/325 MCU, 26.601712MHz XTAL
- 32KB EPROM (M27C256B-12F1), 128KB SRAM (KM681000ALG-10)
- LCD with 4 7segs and custom segments, same as Novag VIP
- RJ-12 port for Novag Super System (always 57600 baud)
- RJ-12 port for Novag Super System (always 9600 baud)
- 24 buttons, piezo
TODO:
- currently hardlocks MAME, suspect problem with h8_sci
- internal artwork
- rs232 nss_tvi (Novag TV Interface) doesn't work
- it does a cold boot at every reset, so nvram won't work properly unless MAME
adds some kind of auxillary autosave state feature at power-off
@ -37,7 +36,7 @@ BTANB:
#include "speaker.h"
// internal artwork
//#include "novag_sapphire.lh"
#include "novag_sapphire.lh"
namespace {
@ -333,7 +332,7 @@ void sapphire_state::sapphire(machine_config &config)
screen.set_size(1920/2.5, 606/2.5);
screen.set_visarea_full();
//config.set_default_layout(layout_novag_sapphire);
config.set_default_layout(layout_novag_sapphire);
// rs232 (configure after video)
RS232_PORT(config, m_rs232, default_rs232_devices, nullptr);
@ -350,7 +349,7 @@ void sapphire_state::sapphire(machine_config &config)
ROM Definitions
*******************************************************************************/
ROM_START( sapphire )
ROM_START( sapphire ) // ID = SAPPHIRE V1.01
ROM_REGION16_BE( 0x10000, "maincpu", 0 )
ROM_LOAD("novag_9304-010053_6433258b46f.u1", 0x0000, 0x8000, CRC(bfc39f4b) SHA1(dc96440c070e903772f4485757443dd690e92120) )
ROM_LOAD("bk301_26601.u2", 0x8000, 0x8000, CRC(648ebe8f) SHA1(2883f962a0bf17426fd809b9f2c01ce3dec0df1b) )
@ -368,4 +367,4 @@ ROM_END
*******************************************************************************/
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
SYST( 1994, sapphire, 0, 0, sapphire, sapphire, sapphire_state, empty_init, "Novag Industries", "Sapphire (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
SYST( 1994, sapphire, 0, 0, sapphire, sapphire, sapphire_state, empty_init, "Novag Industries", "Sapphire (Novag)", MACHINE_SUPPORTS_SAVE )