Skip to content

Commit 2d8233a

Browse files
committed
Systems promoted to working
--------------------------- Sapphire (Novag) [hap, Berger]
1 parent df8be62 commit 2d8233a

File tree

3 files changed

+207
-9
lines changed

3 files changed

+207
-9
lines changed

hash/saitek_egr.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ license:CC0-1.0
1616
<sharedfeat name="compatibility" value="egr"/>
1717
<part name="extrom" interface="saitek_egr">
1818
<dataarea name="rom" size="0x8000">
19-
<rom name="egr.bin" size="0x8000" crc="1f9800c8" sha1="6147ad3de65b897fa5f6ab06b2f8597403d6e32e" />
19+
<rom name="egr_c10_u4" size="0x8000" crc="1f9800c8" sha1="6147ad3de65b897fa5f6ab06b2f8597403d6e32e" />
2020
</dataarea>
2121
</part>
2222
</software>

src/mame/layout/novag_sapphire.lay

+199
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
license:CC0-1.0
4+
authors:hap
5+
-->
6+
<mamelayout version="2">
7+
8+
<!-- define elements -->
9+
10+
<element name="grayd"><disk><color red="0.21" green="0.2" blue="0.2" /></disk></element>
11+
<element name="redd"><disk><color red="0.85" green="0.35" blue="0.2" /></disk></element>
12+
<element name="white"><rect><color red="0.86" green="0.85" blue="0.85" /></rect></element>
13+
<element name="gray2"><rect><color red="0.21" green="0.2" blue="0.2" /></rect></element>
14+
<element name="lcdm"><rect><color red="0.7" green="0.71" blue="0.72" /></rect></element>
15+
16+
<element name="triangle">
17+
<image><data><![CDATA[
18+
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="10" height="10">
19+
<path d="M 5,0 10,10 0,10 z" fill="#99e6e6" stroke="none" stroke-width="0" />
20+
</svg>
21+
]]></data></image>
22+
</element>
23+
24+
<element name="hlb" defstate="0">
25+
<disk state="1"><color red="0.1" green="0.1" blue="0.1" /></disk>
26+
</element>
27+
<element name="hlb2" defstate="0">
28+
<disk state="1"><color red="0.77" green="0.77" blue="0.77" /></disk>
29+
</element>
30+
31+
<element name="text_b1"><text string="A 1"><color red="0.6" green="0.9" blue="0.9" /></text></element>
32+
<element name="text_b2"><text string="B 2"><color red="0.6" green="0.9" blue="0.9" /></text></element>
33+
<element name="text_b3"><text string="C 3"><color red="0.6" green="0.9" blue="0.9" /></text></element>
34+
<element name="text_b4"><text string="D 4"><color red="0.6" green="0.9" blue="0.9" /></text></element>
35+
<element name="text_b5"><text string="E 5"><color red="0.6" green="0.9" blue="0.9" /></text></element>
36+
<element name="text_b6"><text string="F 6"><color red="0.6" green="0.9" blue="0.9" /></text></element>
37+
<element name="text_b7"><text string="G 7"><color red="0.6" green="0.9" blue="0.9" /></text></element>
38+
<element name="text_b8"><text string="H 8"><color red="0.6" green="0.9" blue="0.9" /></text></element>
39+
<element name="text_bng"><text string="NG"><color red="0.93" green="0.92" blue="0.92" /></text></element>
40+
<element name="text_bc1"><text string="C"><color red="0.86" green="0.85" blue="0.85" /></text></element>
41+
<element name="text_bc2"><text string="C B"><color red="0.86" green="0.85" blue="0.85" /></text></element>
42+
<element name="text_bgo"><text string="GO"><color red="0.86" green="0.85" blue="0.85" /></text></element>
43+
44+
<element name="text_p1"><image file="chess/wp.svg"><color alpha="0.67" /></image></element>
45+
<element name="text_p2"><image file="chess/wn.svg"><color alpha="0.67" /></image></element>
46+
<element name="text_p3"><image file="chess/wb.svg"><color alpha="0.67" /></image></element>
47+
<element name="text_p4"><image file="chess/wr.svg"><color alpha="0.67" /></image></element>
48+
<element name="text_p5"><image file="chess/wq.svg"><color alpha="0.67" /></image></element>
49+
<element name="text_p6"><image file="chess/wk.svg"><color alpha="0.67" /></image></element>
50+
51+
<element name="text_w1"><text string="Ver/Set"><color red="0.86" green="0.85" blue="0.85" /></text></element>
52+
<element name="text_w2"><text string="Option 1/2"><color red="0.86" green="0.85" blue="0.85" /></text></element>
53+
<element name="text_w3"><text string="Load Game"><color red="0.86" green="0.85" blue="0.85" /></text></element>
54+
<element name="text_w4"><text string="Save Game"><color red="0.86" green="0.85" blue="0.85" /></text></element>
55+
<element name="text_w5"><text string="Training"><color red="0.86" green="0.85" blue="0.85" /></text></element>
56+
<element name="text_w6"><text string="Color"><color red="0.86" green="0.85" blue="0.85" /></text></element>
57+
<element name="text_w7"><text string="Hint"><color red="0.86" green="0.85" blue="0.85" /></text></element>
58+
<element name="text_w8"><text string="Referee"><color red="0.86" green="0.85" blue="0.85" /></text></element>
59+
<element name="text_w9"><text string="Sound"><color red="0.86" green="0.85" blue="0.85" /></text></element>
60+
<element name="text_w10"><text string="Info"><color red="0.86" green="0.85" blue="0.85" /></text></element>
61+
<element name="text_w11"><text string="Level"><color red="0.86" green="0.85" blue="0.85" /></text></element>
62+
63+
<element name="text_r1"><text string="Random"><color red="0.85" green="0.35" blue="0.2" /></text></element>
64+
<element name="text_r2"><text string="ProDelete"><color red="0.85" green="0.35" blue="0.2" /></text></element>
65+
<element name="text_r3"><text string="ProSave"><color red="0.85" green="0.35" blue="0.2" /></text></element>
66+
<element name="text_r4"><text string="ProPrior"><color red="0.85" green="0.35" blue="0.2" /></text></element>
67+
<element name="text_r5"><text string="Analyze"><color red="0.85" green="0.35" blue="0.2" /></text></element>
68+
<element name="text_r6"><text string="ProPrint"><color red="0.85" green="0.35" blue="0.2" /></text></element>
69+
<element name="text_r7"><text string="BkSelect"><color red="0.85" green="0.35" blue="0.2" /></text></element>
70+
<element name="text_r8"><text string="Restore"><color red="0.85" green="0.35" blue="0.2" /></text></element>
71+
<element name="text_r9"><text string="Next Best"><color red="0.85" green="0.35" blue="0.2" /></text></element>
72+
<element name="text_r10"><text string="Easy"><color red="0.85" green="0.35" blue="0.2" /></text></element>
73+
74+
75+
<!-- build screen -->
76+
77+
<view name="Internal Layout">
78+
<bounds left="4" right="66" top="-19" bottom="59" />
79+
80+
<element ref="gray2"><bounds xc="35" y="1" width="62" height="0.3" /></element>
81+
<screen index="0"><bounds xc="35" yc="-9" width="40" height="12.62" /></screen>
82+
<element ref="lcdm" blend="multiply"><bounds xc="35" yc="-9" width="40.5" height="13.12" /></element>
83+
84+
<!-- buttons base -->
85+
<element ref="grayd"><bounds xc="10" yc="10" width="5.3" height="5.3" /></element>
86+
<element ref="grayd"><bounds xc="20" yc="10" width="5.3" height="5.3" /></element>
87+
<element ref="grayd"><bounds xc="30" yc="10" width="5.3" height="5.3" /></element>
88+
<element ref="grayd"><bounds xc="40" yc="10" width="5.3" height="5.3" /></element>
89+
<element ref="grayd"><bounds xc="50" yc="10" width="5.3" height="5.3" /></element>
90+
<element ref="redd"><bounds xc="60" yc="10" width="5.3" height="5.3" /></element>
91+
92+
<element ref="grayd"><bounds xc="10" yc="20" width="5.3" height="5.3" /></element>
93+
<element ref="grayd"><bounds xc="20" yc="20" width="5.3" height="5.3" /></element>
94+
<element ref="grayd"><bounds xc="30" yc="20" width="5.3" height="5.3" /></element>
95+
<element ref="grayd"><bounds xc="40" yc="20" width="5.3" height="5.3" /></element>
96+
<element ref="grayd"><bounds xc="50" yc="20" width="5.3" height="5.3" /></element>
97+
<element ref="grayd"><bounds xc="60" yc="20" width="5.3" height="5.3" /></element>
98+
99+
<element ref="grayd"><bounds xc="15" yc="30" width="5.3" height="5.3" /></element>
100+
<element ref="grayd"><bounds xc="25" yc="30" width="5.3" height="5.3" /></element>
101+
<element ref="grayd"><bounds xc="35" yc="30" width="5.3" height="5.3" /></element>
102+
<element ref="grayd"><bounds xc="45" yc="30" width="5.3" height="5.3" /></element>
103+
<element ref="grayd"><bounds xc="55" yc="30" width="5.3" height="5.3" /></element>
104+
105+
<element ref="grayd"><bounds xc="20" yc="40" width="5.3" height="5.3" /></element>
106+
<element ref="grayd"><bounds xc="30" yc="40" width="5.3" height="5.3" /></element>
107+
<element ref="grayd"><bounds xc="40" yc="40" width="5.3" height="5.3" /></element>
108+
<element ref="grayd"><bounds xc="50" yc="40" width="5.3" height="5.3" /></element>
109+
110+
<element ref="grayd"><bounds xc="25" yc="50" width="5.3" height="5.3" /></element>
111+
<element ref="grayd"><bounds xc="35" yc="50" width="5.3" height="5.3" /></element>
112+
<element ref="grayd"><bounds xc="45" yc="50" width="5.3" height="5.3" /></element>
113+
114+
<element ref="text_b1"><bounds xc="10" yc="9.95" width="6" height="3.1" /></element>
115+
<element ref="text_b2"><bounds xc="20" yc="9.95" width="6" height="3.1" /></element>
116+
<element ref="text_b3"><bounds xc="30" yc="9.95" width="6" height="3.1" /></element>
117+
<element ref="text_b4"><bounds xc="40" yc="9.95" width="6" height="3.1" /></element>
118+
<element ref="text_b5"><bounds xc="10" yc="19.95" width="6" height="3.1" /></element>
119+
<element ref="text_b6"><bounds xc="20" yc="19.95" width="6" height="3.1" /></element>
120+
<element ref="text_b7"><bounds xc="30" yc="19.95" width="6" height="3.1" /></element>
121+
<element ref="text_b8"><bounds xc="40" yc="19.95" width="6" height="3.1" /></element>
122+
<element ref="text_bng"><bounds xc="60" yc="9.95" width="6" height="3.1" /></element>
123+
<element ref="text_bgo"><bounds xc="45" yc="49.95" width="6" height="3.1" /></element>
124+
125+
<element ref="white"><bounds xc="60" yc="20" width="1.7" height="0.15" /></element>
126+
<element ref="text_bc1"><bounds xc="60" yc="18.85" width="6" height="2.1" /></element>
127+
<element ref="text_bc2"><bounds xc="60" yc="21.05" width="6" height="2.1" /></element>
128+
129+
<element ref="text_p1" blend="add"><bounds xc="15" yc="29.9" width="4" height="4" /></element>
130+
<element ref="text_p2" blend="add"><bounds xc="25" yc="29.9" width="4" height="4" /></element>
131+
<element ref="text_p3" blend="add"><bounds xc="35" yc="29.9" width="4" height="4" /></element>
132+
<element ref="text_p4" blend="add"><bounds xc="20" yc="39.9" width="4" height="4" /></element>
133+
<element ref="text_p5" blend="add"><bounds xc="30" yc="39.9" width="4" height="4" /></element>
134+
<element ref="text_p6" blend="add"><bounds xc="40" yc="39.9" width="4" height="4" /></element>
135+
136+
<element ref="triangle"><bounds xc="24.6" yc="50" width="2.5" height="2.8" /><orientation rotate="270" /></element>
137+
<element ref="triangle"><bounds xc="35.4" yc="50" width="2.5" height="2.8" /><orientation rotate="90" /></element>
138+
139+
<!-- button masks -->
140+
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x80"><bounds xc="10" yc="10" width="5.3" height="5.3" /></element>
141+
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x40"><bounds xc="20" yc="10" width="5.3" height="5.3" /></element>
142+
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x20"><bounds xc="30" yc="10" width="5.3" height="5.3" /></element>
143+
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x10"><bounds xc="40" yc="10" width="5.3" height="5.3" /></element>
144+
<element ref="hlb" blend="add" inputtag="IN.0" inputmask="0x20"><bounds xc="50" yc="10" width="5.3" height="5.3" /></element>
145+
<element ref="hlb2" blend="multiply" inputtag="IN.0" inputmask="0x01"><bounds xc="60" yc="10" width="5.3" height="5.3" /></element>
146+
147+
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x08"><bounds xc="10" yc="20" width="5.3" height="5.3" /></element>
148+
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x04"><bounds xc="20" yc="20" width="5.3" height="5.3" /></element>
149+
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x02"><bounds xc="30" yc="20" width="5.3" height="5.3" /></element>
150+
<element ref="hlb" blend="add" inputtag="IN.2" inputmask="0x01"><bounds xc="40" yc="20" width="5.3" height="5.3" /></element>
151+
<element ref="hlb" blend="add" inputtag="IN.0" inputmask="0x04"><bounds xc="50" yc="20" width="5.3" height="5.3" /></element>
152+
<element ref="hlb" blend="add" inputtag="IN.0" inputmask="0x02"><bounds xc="60" yc="20" width="5.3" height="5.3" /></element>
153+
154+
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x01"><bounds xc="15" yc="30" width="5.3" height="5.3" /></element>
155+
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x02"><bounds xc="25" yc="30" width="5.3" height="5.3" /></element>
156+
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x04"><bounds xc="35" yc="30" width="5.3" height="5.3" /></element>
157+
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x80"><bounds xc="45" yc="30" width="5.3" height="5.3" /></element>
158+
<element ref="hlb" blend="add" inputtag="IN.0" inputmask="0x10"><bounds xc="55" yc="30" width="5.3" height="5.3" /></element>
159+
160+
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x08"><bounds xc="20" yc="40" width="5.3" height="5.3" /></element>
161+
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x10"><bounds xc="30" yc="40" width="5.3" height="5.3" /></element>
162+
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x20"><bounds xc="40" yc="40" width="5.3" height="5.3" /></element>
163+
<element ref="hlb" blend="add" inputtag="IN.0" inputmask="0x08"><bounds xc="50" yc="40" width="5.3" height="5.3" /></element>
164+
165+
<element ref="hlb" blend="add" inputtag="IN.1" inputmask="0x40"><bounds xc="25" yc="50" width="5.3" height="5.3" /></element>
166+
<element ref="hlb" blend="add" inputtag="IN.0" inputmask="0x40"><bounds xc="35" yc="50" width="5.3" height="5.3" /></element>
167+
<element ref="hlb" blend="add" inputtag="IN.0" inputmask="0x80"><bounds xc="45" yc="50" width="5.3" height="5.3" /></element>
168+
169+
<!-- labels under -->
170+
<element ref="text_w1"><bounds xc="50" y="13" width="10" height="1.75" /></element>
171+
<element ref="text_w2"><bounds xc="50" y="23" width="10" height="1.75" /></element>
172+
173+
<element ref="text_w3"><bounds xc="15" y="33" width="10" height="1.75" /></element>
174+
<element ref="text_w4"><bounds xc="25" y="33" width="10" height="1.75" /></element>
175+
<element ref="text_w5"><bounds xc="35" y="33" width="10" height="1.75" /></element>
176+
<element ref="text_w6"><bounds xc="45" y="33" width="10" height="1.75" /></element>
177+
<element ref="text_w7"><bounds xc="55" y="33" width="10" height="1.75" /></element>
178+
179+
<element ref="text_w8"><bounds xc="20" y="43" width="10" height="1.75" /></element>
180+
<element ref="text_w9"><bounds xc="30" y="43" width="10" height="1.75" /></element>
181+
<element ref="text_w10"><bounds xc="40" y="43" width="10" height="1.75" /></element>
182+
<element ref="text_w11"><bounds xc="50" y="43" width="10" height="1.75" /></element>
183+
184+
<element ref="text_r1"><bounds xc="50" y="24.55" width="10" height="1.75" /></element>
185+
186+
<element ref="text_r2"><bounds xc="15" y="34.55" width="10" height="1.75" /></element>
187+
<element ref="text_r3"><bounds xc="25" y="34.55" width="10" height="1.75" /></element>
188+
<element ref="text_r4"><bounds xc="35" y="34.55" width="10" height="1.75" /></element>
189+
<element ref="text_r5"><bounds xc="55" y="34.55" width="10" height="1.75" /></element>
190+
191+
<element ref="text_r6"><bounds xc="20" y="44.55" width="10" height="1.75" /></element>
192+
<element ref="text_r7"><bounds xc="30" y="44.55" width="10" height="1.75" /></element>
193+
<element ref="text_r8"><bounds xc="40" y="44.55" width="10" height="1.75" /></element>
194+
195+
<element ref="text_r9"><bounds xc="25" y="53" width="10" height="1.75" /></element>
196+
<element ref="text_r10"><bounds xc="35" y="53" width="10" height="1.75" /></element>
197+
198+
</view>
199+
</mamelayout>

src/mame/novag/sapphire.cpp

+7-8
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,18 @@
33
// thanks-to:Berger
44
/*******************************************************************************
55
6-
Novag Sapphire
6+
Novag Sapphire (model 9304)
77
88
Hardware notes:
99
- PCB label: 100168 REV A
1010
- Hitachi H8/325 MCU, 26.601712MHz XTAL
1111
- 32KB EPROM (M27C256B-12F1), 128KB SRAM (KM681000ALG-10)
1212
- LCD with 4 7segs and custom segments, same as Novag VIP
13-
- RJ-12 port for Novag Super System (always 57600 baud)
13+
- RJ-12 port for Novag Super System (always 9600 baud)
1414
- 24 buttons, piezo
1515
1616
TODO:
17-
- currently hardlocks MAME, suspect problem with h8_sci
18-
- internal artwork
17+
- rs232 nss_tvi (Novag TV Interface) doesn't work
1918
- it does a cold boot at every reset, so nvram won't work properly unless MAME
2019
adds some kind of auxillary autosave state feature at power-off
2120
@@ -37,7 +36,7 @@ Hardware notes:
3736
#include "speaker.h"
3837

3938
// internal artwork
40-
//#include "novag_sapphire.lh"
39+
#include "novag_sapphire.lh"
4140

4241

4342
namespace {
@@ -333,7 +332,7 @@ void sapphire_state::sapphire(machine_config &config)
333332
screen.set_size(1920/2.5, 606/2.5);
334333
screen.set_visarea_full();
335334

336-
//config.set_default_layout(layout_novag_sapphire);
335+
config.set_default_layout(layout_novag_sapphire);
337336

338337
// rs232 (configure after video)
339338
RS232_PORT(config, m_rs232, default_rs232_devices, nullptr);
@@ -350,7 +349,7 @@ void sapphire_state::sapphire(machine_config &config)
350349
ROM Definitions
351350
*******************************************************************************/
352351

353-
ROM_START( sapphire )
352+
ROM_START( sapphire ) // ID = SAPPHIRE V1.01
354353
ROM_REGION16_BE( 0x10000, "maincpu", 0 )
355354
ROM_LOAD("novag_9304-010053_6433258b46f.u1", 0x0000, 0x8000, CRC(bfc39f4b) SHA1(dc96440c070e903772f4485757443dd690e92120) )
356355
ROM_LOAD("bk301_26601.u2", 0x8000, 0x8000, CRC(648ebe8f) SHA1(2883f962a0bf17426fd809b9f2c01ce3dec0df1b) )
@@ -368,4 +367,4 @@ ROM_END
368367
*******************************************************************************/
369368

370369
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
371-
SYST( 1994, sapphire, 0, 0, sapphire, sapphire, sapphire_state, empty_init, "Novag Industries", "Sapphire (Novag)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
370+
SYST( 1994, sapphire, 0, 0, sapphire, sapphire, sapphire_state, empty_init, "Novag Industries", "Sapphire (Novag)", MACHINE_SUPPORTS_SAVE )

0 commit comments

Comments
 (0)