Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
06216 Sound Feature Always May 20, 2016, 15:50 Jan 25, 2017, 18:14
Tester demotester View Status Public Platform MESS (Official Binary)
Assigned To Robbbert Resolution Fixed OS Windows XP
Status [?] Resolved Driver ptcsol.cpp
Version 0.173 Fixed in Version 0.182 Build Normal
Summary MESS-specific 06216: sol20: Audio support
Description I played a little with Sol20 emulation and found it pretty good in MAME/MESS, but there is one thing I would like see implemented in MAME too
and that is support for the Music System audio! (and yeah, the disk drive, but that is other story and not for this topic)

Note: other emulator Solance seem already supports Music System audio! (but I like/prefer the sol20 emu in MAME/MESS more)
Steps To Reproduce So here is short explanation/findings how it works on Solance emu:

- go to Options/Audio and Enable audio and EI/DI audio Volume to max
- go to File/Load Program... Music folder and open music.ent
- type "EX 0" (note: w/o "" and use big letters)
- in Music system type R to exit to Monitor
- go to File/Load Program... Music folder and open f.e. "alleg.ent"
- type "EX 0" (w/o "") to return to Music System
- type F (wait until show numbers)
- type L (to list the data - but this can be escaped)
- type S (wait until show numbers)
- Type P (to play)
- when it finish type P to play again or R to exit to Monitor
- load a next music as explained above

And here is how it should work on MAME sol20 driver:
- start sol20 with attached the "music" tape from the sw-list
- type XEQ to load the Music System
- type R to exit to Monitor
- type GET to load the 1st music from tape (there exist 6 music files)
- type "EX 0" to return to Music System
- type F (wait until show numbers)
- type L to list the data (can be escaped, not neded for playing)
- type S (wait until show numbers)
- type P to play the music... hmm, but no sound, nothing!
(yeah, as this is not yet implemented)

NOTE: dont forget to use big letters for commands, otherwise it wont work.

And there exist some more music files
that can be used via paste option in MAME/MESS! (thus it is not only 6 music files)
Additional Information The User Manual at
 - HOW TO USE THE MUSIC SYSTEM - manual p.22
 - THE MUSIC SYSTEM CIRCUIT BOARD - manual p.3 (schematic p.7)

Also, on the link it explains in short how it works:
quote: "It toggles the interrupt enable line on the CPU on and off at a fast rate. The Sol did not use this line."

I guess this seem not difficult to implement into MAME sol20 driver.
(specially as Solance emu comes with source code )

p.s. Is not something similar audio support already implemented into Exidy Sorcerer and Trs80 drivers via I/O ports!?

Edit: Also, in the Solance emu Release Notes it says: (quote)

  * Solace now emulates the P.T. Music System audio generation hack.
   This is a simple RC filter on the S-100 interrupt enable line,
   which drives an audio amp. By toggling this line via EI and DI
   instructions, multivoiced music can be produced. Control this
   option via the "Options/Audio" panel. In general this should
   be disabled unless running the Music System software because
   otherwise programs that execute EI/DI (such as CP/M) will cause
   annoying clicks on the audio at various times. The audio can
   also be dumped to a WAV file.
Regression Version
Affected Sets / Systems sol20
Attached Files
There are no relationship linked to this issue.
User avatar
Jan 6, 2017, 13:27
This has been done.
User avatar
Jan 6, 2017, 18:27
edited on: Jan 6, 2017, 18:38
Finally, thanks a lot !

Btw. in the user manual on the page 24 & 25 are description of commands:
( The User Manual at )

R - return to SOLOS
F - verify the file
S - score it
P - play it
User avatar
Jan 25, 2017, 18:14
edited on: Jan 26, 2017, 16:37
Just tested it in 182 release!

It seems that the Circuit Board Low-pass filter is not emulated, so it should be adjusted via a sound card equalizer to sound as it comes from the circuit board! (see below)

On the page 7 in the manual: R1 + C1 -> Low-pass filter (schematic)
On the page 4 in the manual is the Circuit Board Parts List: R1 = 1000 Ohm, C1 = 0.1 uF

fc = 1 / (2*PI*R1*C1) = 1 / (2*3.14*0.0001) = 1592 Hz -> Cut-off frequency

So just adjust a sound cart equalizer to cut frequencies after 1592 Hz ! ;-)

I forgot to mention, there are the capacitor C2 that is same as C1 but is connected in serial to output, so the board will muffle also some of the low frequencies too!
An example of the "Music System" Board (Replica) is shown here:
There is also an video to hear how it sounds on a real machine!

Edit: I guess the other way would be to disable the equalizer and connect a real made hw filter to a PC's headphone jack (or line out to amp) and listen it on that way. :-)