Skip to content

Commit 2e003a2

Browse files
authored
paia/fatman.cpp: Adding driver for FatMan. (#13324)
1 parent b6dca55 commit 2e003a2

File tree

3 files changed

+964
-0
lines changed

3 files changed

+964
-0
lines changed

src/mame/layout/paia_fatman.lay

Lines changed: 386 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,386 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
license:CC0-1.0
4+
copyright-holders:m1macrophage
5+
-->
6+
<mamelayout version="2">
7+
<!-- Case -->
8+
<element name="bezel">
9+
<rect><color red="0.827" green="0.757" blue="0.627"/></rect>
10+
</element>
11+
<element name="case">
12+
<rect><color red="0.078" green="0.094" blue="0.098"/></rect>
13+
</element>
14+
<element name="vent">
15+
<rect><color red="0.027" green="0.024" blue="0.043"/></rect>
16+
</element>
17+
<element name="led" defstate="0">
18+
<disk state="0"><color red="0.3" green="0.0" blue="0.0"/></disk>
19+
<disk state="1"><color red="0.7" green="0.0" blue="0.0"/></disk>
20+
</element>
21+
<element name="led-power">
22+
<disk><color red="0.7" green="0.0" blue="0.0"/></disk>
23+
</element>
24+
25+
<!-- Silkscreen -->
26+
<element name="rounded-rect-narrow">
27+
<image><data><![CDATA[
28+
<rect stroke="#d1dbd3" fill="none" stroke-width="4" width="260" height="539" rx="28" ry="38"/>
29+
]]></data></image>
30+
</element>
31+
<element name="rounded-rect-wide">
32+
<image><data><![CDATA[
33+
<rect stroke="#d1dbd3" fill="none" stroke-width="4" width="441" height="539" rx="28" ry="38"/>
34+
]]></data></image>
35+
</element>
36+
<element name="line">
37+
<rect><color red="0.820" green="0.859" blue="0.827"/></rect>
38+
</element>
39+
40+
<!-- Text -->
41+
<element name="text-gate">
42+
<text string="Gate" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
43+
</element>
44+
<element name="text-midi">
45+
<text string="MIDI In" align="2"><color red="0.820" green="0.859" blue="0.827"/></text>
46+
</element>
47+
<element name="text-power">
48+
<text string="POWER" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
49+
</element>
50+
<element name="text-vcos">
51+
<text string="VCOs"><color red="0.820" green="0.859" blue="0.827"/></text>
52+
</element>
53+
<element name="text-vcf">
54+
<text string="VCF"><color red="0.820" green="0.859" blue="0.827"/></text>
55+
</element>
56+
<element name="text-vca">
57+
<text string="VCA"><color red="0.820" green="0.859" blue="0.827"/></text>
58+
</element>
59+
<element name="text-modulation">
60+
<text string="Modulation"><color red="0.820" green="0.859" blue="0.827"/></text>
61+
</element>
62+
<element name="text-transient">
63+
<text string="Transient"><color red="0.820" green="0.859" blue="0.827"/></text>
64+
</element>
65+
<element name="text-unison">
66+
<text string="unison"><color red="0.820" green="0.859" blue="0.827"/></text>
67+
</element>
68+
<element name="text-both">
69+
<text string="both"><color red="0.820" green="0.859" blue="0.827"/></text>
70+
</element>
71+
72+
<!-- Knob and switch text -->
73+
<element name="text-pitch-caps">
74+
<text string="PITCH" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
75+
</element>
76+
<element name="text-glide">
77+
<text string="Glide" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
78+
</element>
79+
<element name="text-offset">
80+
<text string="Offset" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
81+
</element>
82+
<element name="text-mix">
83+
<text string="1-2 Mix" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
84+
</element>
85+
<element name="text-freq">
86+
<text string="Freq." align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
87+
</element>
88+
<element name="text-res">
89+
<text string="Res." align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
90+
</element>
91+
<element name="text-punch">
92+
<text string="PUNCH" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
93+
</element>
94+
<element name="text-on">
95+
<text string="on"><color red="0.820" green="0.859" blue="0.827"/></text>
96+
</element>
97+
<element name="text-off">
98+
<text string="off"><color red="0.820" green="0.859" blue="0.827"/></text>
99+
</element>
100+
<element name="text-output">
101+
<text string="Output" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
102+
</element>
103+
<element name="text-pitch">
104+
<text string="Pitch" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
105+
</element>
106+
<element name="text-velocity">
107+
<text string="Velocity" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
108+
</element>
109+
<element name="text-asr-paren">
110+
<text string="A(S)R" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
111+
</element>
112+
<element name="text-asr">
113+
<text string="ASR"><color red="0.820" green="0.859" blue="0.827"/></text>
114+
</element>
115+
<element name="text-ar">
116+
<text string="AR"><color red="0.820" green="0.859" blue="0.827"/></text>
117+
</element>
118+
<element name="text-adsr">
119+
<text string="ADSR" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
120+
</element>
121+
<element name="text-attack">
122+
<text string="Attack" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
123+
</element>
124+
<element name="text-decay">
125+
<text string="Decay" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
126+
</element>
127+
<element name="text-sustain">
128+
<text string="Sustain" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
129+
</element>
130+
<element name="text-release">
131+
<text string="Release" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
132+
</element>
133+
<element name="text-minus-half">
134+
<text string="-1/2" align="2"><color red="0.820" green="0.859" blue="0.827"/></text>
135+
</element>
136+
<element name="text-plus-half">
137+
<text string="+1/2" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
138+
</element>
139+
<element name="text-minus-one">
140+
<text string="-1" align="2"><color red="0.820" green="0.859" blue="0.827"/></text>
141+
</element>
142+
<element name="text-plus-one">
143+
<text string="+1" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
144+
</element>
145+
<element name="text-vco1">
146+
<text string="VCO1" align="2"><color red="0.820" green="0.859" blue="0.827"/></text>
147+
</element>
148+
<element name="text-vco2">
149+
<text string="VCO2" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
150+
</element>
151+
<element name="text-min">
152+
<text string="Min" align="2"><color red="0.820" green="0.859" blue="0.827"/></text>
153+
</element>
154+
<element name="text-max">
155+
<text string="Max" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
156+
</element>
157+
<element name="text-fast">
158+
<text string="Fast" align="2"><color red="0.820" green="0.859" blue="0.827"/></text>
159+
</element>
160+
<element name="text-slow">
161+
<text string="Slow" align="1"><color red="0.820" green="0.859" blue="0.827"/></text>
162+
</element>
163+
164+
<!-- Knobs -->
165+
<element name="white-disk">
166+
<disk><color red="0.820" green="0.859" blue="0.827"/></disk>
167+
</element>
168+
<element name="blue-disk">
169+
<disk><color red="0.0" green="0.090" blue="0.322"/></disk>
170+
</element>
171+
<element name="gray-disk">
172+
<disk><color red="0.239" green="0.231" blue="0.227"/></disk>
173+
</element>
174+
<element name="transparent-rect">
175+
<rect><color red="0" green="0" blue="0" alpha="0"/></rect>
176+
</element>
177+
<element name="knob-value">
178+
<simplecounter maxstate="100" digits="1">
179+
<color red="0.820" green="0.859" blue="0.827"/>
180+
</simplecounter>
181+
</element>
182+
<group name="knob">
183+
<bounds width="178" height="109"/>
184+
<element ref="gray-disk">
185+
<bounds x="52" y="24" width="72" height="72"/>
186+
</element>
187+
<element ref="blue-disk">
188+
<bounds x="61" y="33" width="54" height="54"/>
189+
</element>
190+
<element ref="white-disk">
191+
<bounds x="45" y="93" width="8" height="8"/>
192+
</element>
193+
<element ref="white-disk">
194+
<bounds x="29" y="54" width="9" height="9"/>
195+
</element>
196+
<element ref="white-disk">
197+
<bounds x="45" y="16" width="10" height="10"/>
198+
</element>
199+
<element ref="white-disk">
200+
<bounds x="82" y="0" width="11" height="11"/>
201+
</element>
202+
<element ref="white-disk">
203+
<bounds x="120" y="15" width="12" height="12"/>
204+
</element>
205+
<element ref="white-disk">
206+
<bounds x="135" y="53" width="13" height="13"/>
207+
</element>
208+
<element ref="white-disk">
209+
<bounds x="119" y="90" width="14" height="14"/>
210+
</element>
211+
</group>
212+
<group name="knob-no-top-circle">
213+
<bounds width="178" height="109"/>
214+
<element ref="gray-disk">
215+
<bounds x="52" y="24" width="72" height="72"/>
216+
</element>
217+
<element ref="blue-disk">
218+
<bounds x="61" y="33" width="54" height="54"/>
219+
</element>
220+
<element ref="white-disk">
221+
<bounds x="45" y="93" width="8" height="8"/>
222+
</element>
223+
<element ref="white-disk">
224+
<bounds x="29" y="54" width="9" height="9"/>
225+
</element>
226+
<element ref="white-disk">
227+
<bounds x="45" y="16" width="10" height="10"/>
228+
</element>
229+
<element ref="white-disk">
230+
<bounds x="120" y="15" width="12" height="12"/>
231+
</element>
232+
<element ref="white-disk">
233+
<bounds x="135" y="53" width="13" height="13"/>
234+
</element>
235+
<element ref="white-disk">
236+
<bounds x="119" y="90" width="14" height="14"/>
237+
</element>
238+
</group>
239+
<group name="knob-min-max">
240+
<bounds width="178" height="109"/>
241+
<group ref="knob">
242+
<bounds x="0" y="0" width="178" height="109"/>
243+
</group>
244+
<element ref="text-min">
245+
<bounds x="0" y="94" width="40" height="15"/>
246+
</element>
247+
<element ref="text-max">
248+
<bounds x="138" y="94" width="40" height="15"/>
249+
</element>
250+
</group>
251+
<group name="knob-fast-slow">
252+
<bounds width="178" height="109"/>
253+
<group ref="knob">
254+
<bounds x="0" y="0" width="178" height="109"/>
255+
</group>
256+
<element ref="text-fast">
257+
<bounds x="0" y="94" width="40" height="15"/>
258+
</element>
259+
<element ref="text-slow">
260+
<bounds x="138" y="94" width="40" height="15"/>
261+
</element>
262+
<element ref="transparent-rect" clickthrough="no">
263+
<!-- Disable clicks on the `simplecounter` below, because they
264+
change the value in an unintuitive way. -->
265+
<bounds x="68" y="52" width="40" height="16"/>
266+
</element>
267+
<element ref="knob-value" inputraw="yes" inputtag="~knob_inputtag~" inputmask="0x7f">
268+
<bounds x="68" y="52" width="40" height="16"/>
269+
</element>
270+
</group>
271+
272+
<!-- Switches -->
273+
<element name="switch" defstate="0">
274+
<rect>
275+
<color red="0.2" green="0.2" blue="0.2"/>
276+
<bounds x="0.0" y="0.0" width="1.0" height="1.0"/>
277+
</rect>
278+
<rect state="0">
279+
<color red="0.7" green="0.7" blue="0.7"/>
280+
<bounds x="0.0" y="0.7" width="1.0" height="0.3"/>
281+
</rect>
282+
<rect state="1">
283+
<color red="0.7" green="0.7" blue="0.7"/>
284+
<bounds x="0.0" y="0.0" width="1.0" height="0.3"/>
285+
</rect>
286+
</element>
287+
288+
<view name="fatman_desktop">
289+
<bounds x="0" y="0" width="1470" height="780"/>
290+
291+
<!-- Chasis -->
292+
<element ref="bezel"><bounds x="22" y="42" width="35" height="719"/></element>
293+
<element ref="case"><bounds x="58" y="65" width="1365" height="668"/></element>
294+
<element ref="vent"><bounds x="1268" y="255" width="19" height="125"/></element>
295+
<element ref="vent"><bounds x="1300" y="255" width="19" height="125"/></element>
296+
<element ref="vent"><bounds x="1333" y="255" width="19" height="125"/></element>
297+
<element ref="bezel"><bounds x="1424" y="42" width="35" height="719"/></element>
298+
<element ref="text-gate"><bounds x="679" y="82" width="54" height="17"/></element>
299+
<element ref="led" name="gate_led"><bounds x="647" y="79" width="25" height="25"/></element>
300+
<element ref="text-midi"><bounds x="1053" y="82" width="91" height="17"/></element>
301+
<element ref="led" name="midi_led"><bounds x="1157" y="79" width="25" height="25"/></element>
302+
<element ref="text-power"><bounds x="1310" y="82" width="90" height="17"/></element>
303+
<element ref="led-power"><bounds x="1277" y="79" width="25" height="25"/></element>
304+
305+
<!-- VCO Section -->
306+
<element ref="text-minus-half"><bounds x="89" y="268" width="40" height="15"/></element>
307+
<element ref="text-minus-one"><bounds x="89" y="536" width="40" height="15"/></element>
308+
<element ref="text-vco1"><bounds x="89" y="671" width="40" height="15"/></element>
309+
<group ref="knob"><bounds x="89" y="174" width="178" height="109"/></group>
310+
<group ref="knob-min-max"><bounds x="89" y="309" width="178" height="109"/></group>
311+
<element ref="text-unison"><bounds x="89" y="441" width="178" height="14"/></element>
312+
<group ref="knob-no-top-circle"><bounds x="89" y="442" width="178" height="109"/></group>
313+
<element ref="text-both"><bounds x="89" y="573" width="178" height="14"/></element>
314+
<group ref="knob-no-top-circle"><bounds x="89" y="577" width="178" height="109"/></group>
315+
<element ref="text-plus-half"><bounds x="227" y="268" width="40" height="15"/></element>
316+
<element ref="text-plus-one"><bounds x="227" y="536" width="40" height="15"/></element>
317+
<element ref="text-vco2"><bounds x="227" y="671" width="40" height="15"/></element>
318+
<element ref="text-pitch-caps"><bounds x="249" y="221" width="70" height="17"/></element>
319+
<element ref="text-glide"><bounds x="249" y="354" width="70" height="17"/></element>
320+
<element ref="text-offset"><bounds x="249" y="489" width="70" height="17"/></element>
321+
<element ref="text-mix"><bounds x="249" y="622" width="70" height="17"/></element>
322+
<element ref="text-vcos"><bounds x="236" y="162" width="76" height="23"/></element>
323+
<element ref="rounded-rect-narrow"><bounds x="74" y="158" width="260" height="539"/></element>
324+
325+
<!-- VCF Section -->
326+
<group ref="knob-min-max"><bounds x="359" y="174" width="178" height="109"/></group>
327+
<group ref="knob-min-max"><bounds x="359" y="309" width="178" height="109"/></group>
328+
<group ref="knob-min-max"><bounds x="359" y="442" width="178" height="109"/></group>
329+
<param name="knob_inputtag" value="VCF_attack"/>
330+
<group ref="knob-fast-slow"><bounds x="359" y="577" width="178" height="109"/></group>
331+
<element ref="text-freq"><bounds x="519" y="221" width="70" height="17"/></element>
332+
<element ref="text-pitch"><bounds x="519" y="354" width="70" height="17"/></element>
333+
<element ref="text-asr-paren"><bounds x="519" y="489" width="70" height="17"/></element>
334+
<element ref="text-attack"><bounds x="519" y="622" width="70" height="17"/></element>
335+
<group ref="knob-min-max"><bounds x="560" y="174" width="178" height="109"/></group>
336+
<group ref="knob-min-max"><bounds x="560" y="309" width="178" height="109"/></group>
337+
<element ref="text-asr"><bounds x="635" y="457" width="28" height="15"/></element>
338+
<element ref="switch" inputtag="VCF_sustain" inputmask="0x01">
339+
<bounds x="635" y="477" width="28" height="40"/>
340+
</element>
341+
<element ref="text-ar"><bounds x="635" y="522" width="28" height="15"/></element>
342+
<param name="knob_inputtag" value="VCF_release"/>
343+
<group ref="knob-fast-slow"><bounds x="560" y="577" width="178" height="109"/></group>
344+
<element ref="text-res"><bounds x="720" y="221" width="70" height="17"/></element>
345+
<element ref="text-velocity"><bounds x="720" y="354" width="70" height="17"/></element>
346+
<element ref="text-sustain"><bounds x="695" y="489" width="70" height="17"/></element>
347+
<element ref="text-release"><bounds x="720" y="622" width="70" height="17"/></element>
348+
<element ref="text-vcf"><bounds x="706" y="162" width="57" height="23"/></element>
349+
<element ref="rounded-rect-wide"><bounds x="348" y="158" width="441" height="539"/></element>
350+
<element ref="text-modulation"><bounds x="511" y="299" width="70" height="13"/></element>
351+
<element ref="line"><bounds x="364" y="290" width="411" height="3"/></element>
352+
<element ref="text-transient"><bounds x="511" y="568" width="70" height="13"/></element>
353+
<element ref="line"><bounds x="364" y="560" width="411" height="3"/></element>
354+
355+
<!-- VCA Section -->
356+
<element ref="text-on"><bounds x="886" y="189" width="28" height="15"/></element>
357+
<element ref="switch"><bounds x="886" y="209" width="28" height="40"/></element>
358+
<element ref="text-off"><bounds x="886" y="254" width="28" height="15"/></element>
359+
<group ref="knob-min-max"><bounds x="811" y="309" width="178" height="109"/></group>
360+
<param name="knob_inputtag" value="VCA_attack"/>
361+
<group ref="knob-fast-slow"><bounds x="811" y="442" width="178" height="109"/></group>
362+
<param name="knob_inputtag" value="VCA_sustain"/>
363+
<group ref="knob-fast-slow"><bounds x="811" y="577" width="178" height="109"/></group>
364+
<element ref="text-punch"><bounds x="925" y="221" width="70" height="17"/></element>
365+
<element ref="text-adsr"><bounds x="971" y="354" width="70" height="17"/></element>
366+
<element ref="text-attack"><bounds x="971" y="489" width="70" height="17"/></element>
367+
<element ref="text-sustain"><bounds x="971" y="622" width="70" height="17"/></element>
368+
<group ref="knob-min-max"><bounds x="1012" y="174" width="178" height="109"/></group>
369+
<group ref="knob-min-max"><bounds x="1012" y="309" width="178" height="109"/></group>
370+
<param name="knob_inputtag" value="VCA_decay"/>
371+
<group ref="knob-fast-slow"><bounds x="1012" y="442" width="178" height="109"/></group>
372+
<param name="knob_inputtag" value="VCA_release"/>
373+
<group ref="knob-fast-slow"><bounds x="1012" y="577" width="178" height="109"/></group>
374+
<element ref="text-output"><bounds x="1172" y="221" width="70" height="17"/></element>
375+
<element ref="text-velocity"><bounds x="1172" y="354" width="70" height="17"/></element>
376+
<element ref="text-decay"><bounds x="1172" y="489" width="70" height="17"/></element>
377+
<element ref="text-release"><bounds x="1172" y="622" width="70" height="17"/></element>
378+
<element ref="text-vca"><bounds x="1161" y="162" width="56" height="23"/></element>
379+
<element ref="rounded-rect-wide"><bounds x="803" y="158" width="441" height="539"/></element>
380+
<element ref="text-modulation"><bounds x="963" y="299" width="70" height="13"/></element>
381+
<element ref="line"><bounds x="818" y="290" width="411" height="3"/></element>
382+
<element ref="text-transient"><bounds x="963" y="430" width="70" height="13"/></element>
383+
<element ref="line"><bounds x="818" y="425" width="411" height="3"/></element>
384+
</view>
385+
</mamelayout>
386+

src/mame/mame.lst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35957,6 +35957,9 @@ penta // bootleg
3595735957
@source:pacman/schick.cpp
3595835958
schick // Microhard
3595935959

35960+
@source:paia/fatman.cpp
35961+
fatman // PAiA FatMan
35962+
3596035963
@source:paia/midi2cv8.cpp
3596135964
midi2cv8 // PAiA midi2cv8 (V/Oct)
3596235965
midi2cv8_vhz // PAiA midi2cv8 with V/Hz daughterboard

0 commit comments

Comments
 (0)