diff options
author | Aaron Giles <aaron@aarongiles.com> | 2021-05-31 11:20:28 -0700 |
---|---|---|
committer | Aaron Giles <aaron@aarongiles.com> | 2021-05-31 11:20:28 -0700 |
commit | 05cacea947d7db129c25f33c85aca7ec74be6799 (patch) | |
tree | 1211caac4a3428254f73596af8c61b0b6fe9f9b1 /src/mame/layout | |
parent | b1e775504bb02c1168d64853ca058cbcce6b5978 (diff) |
ympsr60: Fleshed out the PSR60/PSR70 drivers
* Split YM2154 into a separate device
* Created fake YM2154 ROMs as placeholders
* Created new BBD sound device in src/devices/sound/bbd.cpp
* Created new mixer device in src/devices/sound/mixer.cpp
* Connected YM2154 and BBD devices
* Approximated BBD driver behavior
* Exposed analog sliders as adjusters (accessible via ` menu)
* Added sliders to layout and animated them
Diffstat (limited to 'src/mame/layout')
-rw-r--r-- | src/mame/layout/psr60.lay | 91 | ||||
-rw-r--r-- | src/mame/layout/psr70.lay | 63 |
2 files changed, 153 insertions, 1 deletions
diff --git a/src/mame/layout/psr60.lay b/src/mame/layout/psr60.lay index e008753326a..7fd4d694efd 100644 --- a/src/mame/layout/psr60.lay +++ b/src/mame/layout/psr60.lay @@ -279,6 +279,61 @@ license:CC0 <rect><bounds x="11" y="2" width="150" height="19" /><color red="0.3" green="0.3" blue="0.3" /></rect> </element> + <element name="slider-bar-white"> + <disk><bounds x="0" y="0" width="23" height="23" /><color red="0.0" green="0.0" blue="0.0" /></disk> + <disk><bounds x="41" y="0" width="23" height="23" /><color red="0.0" green="0.0" blue="0.0" /></disk> + <rect><bounds x="11" y="0" width="40" height="23" /><color red="0.0" green="0.0" blue="0.0" /></rect> + <disk><bounds x="2" y="2" width="19" height="19" /><color red="0.3" green="0.3" blue="0.3" /></disk> + <disk><bounds x="43" y="2" width="19" height="19" /><color red="0.3" green="0.3" blue="0.3" /></disk> + <rect><bounds x="11" y="2" width="40" height="19" /><color red="0.3" green="0.3" blue="0.3" /></rect> + <rect><bounds x="30" y="2" width="5" height="19" /><color red="1.0" green="1.0" blue="1.0" /></rect> + </element> + <element name="slider-bar-green"> + <disk><bounds x="0" y="0" width="23" height="23" /><color red="0.0" green="0.0" blue="0.0" /></disk> + <disk><bounds x="41" y="0" width="23" height="23" /><color red="0.0" green="0.0" blue="0.0" /></disk> + <rect><bounds x="11" y="0" width="40" height="23" /><color red="0.0" green="0.0" blue="0.0" /></rect> + <disk><bounds x="2" y="2" width="19" height="19" /><color red="0.3" green="0.3" blue="0.3" /></disk> + <disk><bounds x="43" y="2" width="19" height="19" /><color red="0.3" green="0.3" blue="0.3" /></disk> + <rect><bounds x="11" y="2" width="40" height="19" /><color red="0.3" green="0.3" blue="0.3" /></rect> + <rect><bounds x="30" y="2" width="5" height="19" /><color red="0.5" green="1.0" blue="0.5" /></rect> + </element> + <element name="slider-bar-yellow"> + <disk><bounds x="0" y="0" width="23" height="23" /><color red="0.0" green="0.0" blue="0.0" /></disk> + <disk><bounds x="41" y="0" width="23" height="23" /><color red="0.0" green="0.0" blue="0.0" /></disk> + <rect><bounds x="11" y="0" width="40" height="23" /><color red="0.0" green="0.0" blue="0.0" /></rect> + <disk><bounds x="2" y="2" width="19" height="19" /><color red="0.3" green="0.3" blue="0.3" /></disk> + <disk><bounds x="43" y="2" width="19" height="19" /><color red="0.3" green="0.3" blue="0.3" /></disk> + <rect><bounds x="11" y="2" width="40" height="19" /><color red="0.3" green="0.3" blue="0.3" /></rect> + <rect><bounds x="30" y="2" width="5" height="19" /><color red="1.0" green="1.0" blue="0.5" /></rect> + </element> + <element name="slider-bar-blue"> + <disk><bounds x="0" y="0" width="23" height="23" /><color red="0.0" green="0.0" blue="0.0" /></disk> + <disk><bounds x="41" y="0" width="23" height="23" /><color red="0.0" green="0.0" blue="0.0" /></disk> + <rect><bounds x="11" y="0" width="40" height="23" /><color red="0.0" green="0.0" blue="0.0" /></rect> + <disk><bounds x="2" y="2" width="19" height="19" /><color red="0.3" green="0.3" blue="0.3" /></disk> + <disk><bounds x="43" y="2" width="19" height="19" /><color red="0.3" green="0.3" blue="0.3" /></disk> + <rect><bounds x="11" y="2" width="40" height="19" /><color red="0.3" green="0.3" blue="0.3" /></rect> + <rect><bounds x="30" y="2" width="5" height="19" /><color red="0.5" green="0.5" blue="1.0" /></rect> + </element> + <element name="slider-bar-red"> + <disk><bounds x="0" y="0" width="23" height="23" /><color red="0.0" green="0.0" blue="0.0" /></disk> + <disk><bounds x="41" y="0" width="23" height="23" /><color red="0.0" green="0.0" blue="0.0" /></disk> + <rect><bounds x="11" y="0" width="40" height="23" /><color red="0.0" green="0.0" blue="0.0" /></rect> + <disk><bounds x="2" y="2" width="19" height="19" /><color red="0.3" green="0.3" blue="0.3" /></disk> + <disk><bounds x="43" y="2" width="19" height="19" /><color red="0.3" green="0.3" blue="0.3" /></disk> + <rect><bounds x="11" y="2" width="40" height="19" /><color red="0.3" green="0.3" blue="0.3" /></rect> + <rect><bounds x="30" y="2" width="5" height="19" /><color red="1.0" green="0.2" blue="0.2" /></rect> + </element> + <element name="slider-bar-grey"> + <disk><bounds x="0" y="0" width="23" height="23" /><color red="0.0" green="0.0" blue="0.0" /></disk> + <disk><bounds x="41" y="0" width="23" height="23" /><color red="0.0" green="0.0" blue="0.0" /></disk> + <rect><bounds x="11" y="0" width="40" height="23" /><color red="0.0" green="0.0" blue="0.0" /></rect> + <disk><bounds x="2" y="2" width="19" height="19" /><color red="0.3" green="0.3" blue="0.3" /></disk> + <disk><bounds x="43" y="2" width="19" height="19" /><color red="0.3" green="0.3" blue="0.3" /></disk> + <rect><bounds x="11" y="2" width="40" height="19" /><color red="0.3" green="0.3" blue="0.3" /></rect> + <rect><bounds x="30" y="2" width="5" height="19" /><color red="0.6" green="0.6" blue="0.6" /></rect> + </element> + <!-- LED primitive --> <element name="led" defstate="0"> <disk state="0"><color red="0.4" green="0.3" blue="0.3" /></disk> @@ -388,11 +443,17 @@ license:CC0 <element ref="power"><bounds x="177" y="165" width="82" height="17" /></element> <element ref="led" name="DRVIF_0_DP4"><bounds x="213" y="188" width="12" height="12" /></element> <element ref="slider-power"><bounds x="177" y="209" width="82" height="23" /></element> + <element ref="slider-bar-red"><bounds x="193" y="209" width="64" height="23" /></element> <element ref="mastervolume"><bounds x="177" y="307" width="139" height="17" /></element> <element ref="slidermin"><bounds x="177" y="336" width="139" height="13" /></element> <element ref="slidermax"><bounds x="177" y="336" width="139" height="13" /></element> <element ref="slider"><bounds x="177" y="352" width="139" height="23" /></element> + <element ref="slider-bar-grey"> + <animate inputtag="MASTERVOL" mask="0xff" /> + <bounds state="0" x="177" y="352" width="64" height="23" /> + <bounds state="100" x="252" y="352" width="64" height="23" /> + </element> </group> <!-- pitch group --> @@ -451,11 +512,21 @@ license:CC0 <element ref="slidermin"><bounds x="567" y="338" width="139" height="12" /></element> <element ref="slidermax"><bounds x="567" y="338" width="139" height="12" /></element> <element ref="slider"><bounds x="567" y="352" width="139" height="23" /></element> + <element ref="slider-bar-blue"> + <animate inputtag="RYP4_6" mask="0xff" /> + <bounds state="0" x="567" y="352" width="64" height="23" /> + <bounds state="100" x="642" y="352" width="64" height="23" /> + </element> <element ref="bassvolume"><bounds x="567" y="378" width="139" height="14" /></element> <element ref="slidermin"><bounds x="727" y="338" width="139" height="12" /></element> <element ref="slidermax"><bounds x="727" y="338" width="139" height="12" /></element> <element ref="slider"><bounds x="727" y="352" width="139" height="23" /></element> + <element ref="slider-bar-blue"> + <animate inputtag="RYP4_5" mask="0xff" /> + <bounds state="0" x="727" y="352" width="64" height="23" /> + <bounds state="100" x="802" y="352" width="64" height="23" /> + </element> <element ref="chordvolume"><bounds x="727" y="378" width="139" height="14" /></element> </group> @@ -553,11 +624,21 @@ license:CC0 <element ref="slidermin"><bounds x="923" y="338" width="139" height="12" /></element> <element ref="slidermax"><bounds x="923" y="338" width="139" height="12" /></element> <element ref="slider"><bounds x="923" y="352" width="139" height="23" /></element> + <element ref="slider-bar-yellow"> + <animate inputtag="RYP4_3" mask="0xff" /> + <bounds state="0" x="923" y="352" width="64" height="23" /> + <bounds state="100" x="998" y="352" width="64" height="23" /> + </element> <element ref="volume"><bounds x="923" y="378" width="139" height="14" /></element> <element ref="sliderslow"><bounds x="1081" y="338" width="174" height="12" /></element> <element ref="sliderfast"><bounds x="1081" y="338" width="174" height="12" /></element> <element ref="slider-tempo"><bounds x="1081" y="352" width="174" height="23" /></element> + <element ref="slider-bar-yellow"> + <animate inputtag="RYP4_4" mask="0xff" /> + <bounds state="0" x="1081" y="352" width="64" height="23" /> + <bounds state="100" x="1191" y="352" width="64" height="23" /> + </element> <element ref="tempo"><bounds x="1081" y="378" width="174" height="14" /></element> </group> @@ -667,6 +748,11 @@ license:CC0 <element ref="slidermin"><bounds x="1597" y="338" width="139" height="12" /></element> <element ref="slidermax"><bounds x="1597" y="338" width="139" height="12" /></element> <element ref="slider"><bounds x="1597" y="352" width="139" height="23" /></element> + <element ref="slider-bar-green"> + <animate inputtag="RYP4_2" mask="0xff" /> + <bounds state="0" x="1597" y="352" width="64" height="23" /> + <bounds state="100" x="1672" y="352" width="64" height="23" /> + </element> <element ref="volume"><bounds x="1597" y="378" width="139" height="14" /></element> <element ref="button" inputtag="DRVIF_4" inputmask="0x80"><bounds x="1755" y="353" width="65" height="21" /></element> @@ -750,6 +836,11 @@ license:CC0 <element ref="slidermin"><bounds x="2271" y="338" width="139" height="12" /></element> <element ref="slidermax"><bounds x="2271" y="338" width="139" height="12" /></element> <element ref="slider"><bounds x="2271" y="352" width="139" height="23" /></element> + <element ref="slider-bar-white"> + <animate inputtag="RYP4_1" mask="0xff" /> + <bounds state="0" x="2271" y="352" width="64" height="23" /> + <bounds state="100" x="2346" y="352" width="64" height="23" /> + </element> <element ref="volume"><bounds x="2271" y="378" width="139" height="14" /></element> <element ref="button" inputtag="DRVIF_13" inputmask="0x80"><bounds x="2429" y="353" width="65" height="21" /></element> diff --git a/src/mame/layout/psr70.lay b/src/mame/layout/psr70.lay index 102d7951f09..369f7355b12 100644 --- a/src/mame/layout/psr70.lay +++ b/src/mame/layout/psr70.lay @@ -268,6 +268,31 @@ license:CC0 <rect><bounds x="0" y="0" width="152" height="22" /><color red="0.0" green="0.0" blue="0.0" /></rect> <rect><bounds x="2" y="2" width="148" height="18" /><color red="0.3" green="0.3" blue="0.3" /></rect> </element> + <element name="slider-bar-grey"> + <rect><bounds x="0" y="0" width="40" height="22" /><color red="0.0" green="0.0" blue="0.0" /></rect> + <rect><bounds x="2" y="2" width="36" height="18" /><color red="0.67" green="0.65" blue="0.65" /></rect> + <rect><bounds x="18" y="2" width="5" height="18" /><color red="1.0" green="1.0" blue="1.0" /></rect> + </element> + <element name="slider-bar-red"> + <rect><bounds x="0" y="0" width="40" height="22" /><color red="0.0" green="0.0" blue="0.0" /></rect> + <rect><bounds x="2" y="2" width="36" height="18" /><color red="0.83" green="0.21" blue="0.19" /></rect> + <rect><bounds x="18" y="2" width="5" height="18" /><color red="1.0" green="1.0" blue="1.0" /></rect> + </element> + <element name="slider-bar-cyan"> + <rect><bounds x="0" y="0" width="40" height="22" /><color red="0.0" green="0.0" blue="0.0" /></rect> + <rect><bounds x="2" y="2" width="36" height="18" /><color red="0.70" green="0.97" blue="0.96" /></rect> + <rect><bounds x="18" y="2" width="5" height="18" /><color red="1.0" green="1.0" blue="1.0" /></rect> + </element> + <element name="slider-bar-yellow"> + <rect><bounds x="0" y="0" width="40" height="22" /><color red="0.0" green="0.0" blue="0.0" /></rect> + <rect><bounds x="2" y="2" width="36" height="18" /><color red="0.95" green="0.85" blue="0.58" /></rect> + <rect><bounds x="18" y="2" width="5" height="18" /><color red="1.0" green="1.0" blue="1.0" /></rect> + </element> + <element name="slider-bar-green"> + <rect><bounds x="0" y="0" width="40" height="22" /><color red="0.0" green="0.0" blue="0.0" /></rect> + <rect><bounds x="2" y="2" width="36" height="18" /><color red="0.66" green="0.92" blue="0.78" /></rect> + <rect><bounds x="18" y="2" width="5" height="18" /><color red="1.0" green="1.0" blue="1.0" /></rect> + </element> <!-- LED primitives --> <element name="led" defstate="0"> @@ -384,11 +409,17 @@ license:CC0 <element ref="slidermin"><bounds x="689" y="468" width="136" height="13" /></element> <element ref="slidermax"><bounds x="689" y="468" width="136" height="13" /></element> <element ref="slider"><bounds x="699" y="480" width="116" height="22" /></element> + <element ref="slider-bar-grey"> + <animate inputtag="MASTERVOL" mask="0xff" /> + <bounds state="0" x="699" y="480" width="40" height="23" /> + <bounds state="100" x="775" y="480" width="40" height="23" /> + </element> <element ref="mastervolume"><bounds x="699" y="504" width="139" height="13" /></element> <element ref="slideroff"><bounds x="719" y="522" width="76" height="13" /></element> <element ref="slideron"><bounds x="719" y="522" width="76" height="13" /></element> <element ref="slider"><bounds x="699" y="534" width="116" height="22" /></element> + <element ref="slider-bar-red"><bounds x="755" y="534" width="40" height="23" /></element> <element ref="power"><bounds x="699" y="558" width="116" height="13" /></element> <element ref="led" name="DRVIF_0_DP4"><bounds x="820" y="539" width="12" height="12" /></element> </group> @@ -416,11 +447,21 @@ license:CC0 <element ref="slidermin"><bounds x="868" y="468" width="136" height="13" /></element> <element ref="slidermax"><bounds x="868" y="468" width="136" height="13" /></element> <element ref="slider"><bounds x="878" y="480" width="116" height="22" /></element> + <element ref="slider-bar-cyan"> + <animate inputtag="RYP4_6" mask="0xff" /> + <bounds state="0" x="878" y="480" width="40" height="23" /> + <bounds state="100" x="954" y="480" width="40" height="23" /> + </element> <element ref="bassvolume"><bounds x="878" y="504" width="139" height="13" /></element> <element ref="slidermin"><bounds x="868" y="522" width="136" height="13" /></element> <element ref="slidermax"><bounds x="868" y="522" width="136" height="13" /></element> <element ref="slider"><bounds x="878" y="534" width="116" height="22" /></element> + <element ref="slider-bar-cyan"> + <animate inputtag="RYP4_5" mask="0xff" /> + <bounds state="0" x="878" y="534" width="40" height="23" /> + <bounds state="100" x="954" y="534" width="40" height="23" /> + </element> <element ref="chordvolume"><bounds x="878" y="558" width="139" height="13" /></element> </group> @@ -518,11 +559,21 @@ license:CC0 <element ref="slidermin"><bounds x="1047" y="522" width="136" height="13" /></element> <element ref="slidermax"><bounds x="1047" y="522" width="136" height="13" /></element> <element ref="slider"><bounds x="1057" y="534" width="116" height="22" /></element> + <element ref="slider-bar-yellow"> + <animate inputtag="RYP4_3" mask="0xff" /> + <bounds state="0" x="1057" y="534" width="40" height="23" /> + <bounds state="100" x="1133" y="534" width="40" height="23" /> + </element> <element ref="volume"><bounds x="1057" y="558" width="116" height="13" /></element> <element ref="sliderslow"><bounds x="1232" y="522" width="172" height="13" /></element> <element ref="sliderfast"><bounds x="1232" y="522" width="172" height="13" /></element> <element ref="slider-tempo"><bounds x="1242" y="534" width="152" height="22" /></element> + <element ref="slider-bar-yellow"> + <animate inputtag="RYP4_4" mask="0xff" /> + <bounds state="0" x="1242" y="534" width="40" height="23" /> + <bounds state="100" x="1354" y="534" width="40" height="23" /> + </element> <element ref="tempo"><bounds x="1242" y="558" width="152" height="13" /></element> </group> @@ -617,6 +668,11 @@ license:CC0 <element ref="slidermin"><bounds x="1629" y="522" width="136" height="13" /></element> <element ref="slidermax"><bounds x="1629" y="522" width="136" height="13" /></element> <element ref="slider"><bounds x="1639" y="534" width="116" height="22" /></element> + <element ref="slider-bar-green"> + <animate inputtag="RYP4_2" mask="0xff" /> + <bounds state="0" x="1639" y="534" width="40" height="23" /> + <bounds state="100" x="1715" y="534" width="40" height="23" /> + </element> <element ref="volume"><bounds x="1639" y="558" width="116" height="13" /></element> <!-- right column --> @@ -709,6 +765,11 @@ license:CC0 <element ref="slidermin"><bounds x="2029" y="522" width="136" height="13" /></element> <element ref="slidermax"><bounds x="2029" y="522" width="136" height="13" /></element> <element ref="slider"><bounds x="2038" y="534" width="116" height="22" /></element> + <element ref="slider-bar-grey"> + <animate inputtag="RYP4_1" mask="0xff" /> + <bounds state="0" x="2038" y="534" width="40" height="23" /> + <bounds state="100" x="2114" y="534" width="40" height="23" /> + </element> <element ref="volume"><bounds x="2038" y="558" width="116" height="13" /></element> <!-- right column --> @@ -773,7 +834,7 @@ license:CC0 <element ref="keysplit"><bounds x="247" y="617" width="85" height="13" /></element> <element ref="button-yellow" inputtag="DRVIF_3" inputmask="0x10"><bounds x="338" y="618" width="40" height="15" /></element> - <element ref="led" name="DRVIF_3_DP4"><bounds x="381" y="619" width="12" height="12" /></element> + <element ref="led" name="DRVIF_2_DP4"><bounds x="381" y="619" width="12" height="12" /></element> <element ref="keyboardpercussion"><bounds x="399" y="617" width="160" height="13" /></element> <element ref="fillin"><bounds x="532" y="617" width="60" height="13" /></element> |