Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
07305 Sound Minor Always Apr 27, 2019, 13:06 Jun 26, 2021, 10:00
Tester robcfg View Status Public Platform MAME (Official Binary)
Assigned To AJR Resolution Fixed OS MacOS X
Status [?] Resolved Driver dragon.cpp
Version 0.209 Fixed in Version 0.233 Build 64-bit
Fixed in Git Commit 9c002bd Github Pull Request # #8206
Summary MESS-specific 07305: dragon32, dragon64, dragon64h, dragon200, dragon200e: DAC sound not working
Description I did a small assembler program to play 3000hz sampled sound through the Dragon's DAC and found that it works as intended on a real Dragon and on XRoar, but on MAME it produces no sound at all.
Steps To Reproduce I've attached my program along a sampled sound, the original asm source code and a video of XRoar playing the sample for comparison.

Just start a Dragon machine with the vmailsnd.cas file and type:

CLOADM
CLOADM
EXEC 20000

The result should be as on the video, but actually MAME will remain silent.
Additional Information
Github Commit
Flags
Regression Version
Affected Sets / Systems dragon32, dragon64, dragon64h, dragon200, dragon200e
Attached Files
zip file icon Mametesters Dragon DAC Issue.zip (1,106,771 bytes) Apr 27, 2019, 13:06 Uploaded by robcfg
Relationships
There are no relationship linked to this issue.
Notes
9
User avatar
No.16595
Osso
Developer
Jun 28, 2019, 13:02
As soon as the EXEC 20000 command is entered, MAME trips on an illegal opcode.
User avatar
No.16596
Robbbert
Developer
Jun 29, 2019, 08:54
I got a period of silence followed by a screenful of garbage. Debug shows it in a loop for a while, followed by jumping into the weeds (zero-page ram).
User avatar
No.16630
robcfg
Tester
Jul 9, 2019, 19:49
On the cas file, there is first the sample data and then the code.

So you should CLOADM once to load the data, CLOADM again to load the code and finally EXEC 20000 to run it.

Please tell me if there's anything I can help with.
User avatar
No.16631
Robbbert
Developer
Jul 10, 2019, 01:44
edited on: Jul 10, 2019, 01:45
Corrected the instructions in "Steps to Reproduce".

Now it spends a couple of seconds writing to FF20 then finishing. I can confirm it makes no sound.
User avatar
No.16632
robcfg
Tester
Jul 10, 2019, 18:09
The sound circuit is the same for the Dragon 32 and the Dragon 64, so you can use the restored Dragon 64 schematics from Richard Harding's site: http://www.dragondata.co.uk/tech/circuit-diag/D64/FS-White-Prints/Dragon-64K_CPU_PAL_CD41505-2_of_3-B.zip
User avatar
No.19006
tlindner
Tester
Jun 21, 2021, 02:51
Github pull request #8206 fixes this.
User avatar
No.19007
tlindner
Tester
Jun 21, 2021, 03:22
So… the idea of using the Data Direction Register to twiddle the DAC is an interesting one.

I just tried it on my CoCo 3. I hear the bell sounds perfectly. But at the end of the sound I get static on the real CoCo 3. I loaded the audio in Audacity and hear and see near silence at the end. In your Xroar video I hear rapid beeps.

I don't know what is exactly going on with the static, or Xroar's beeps. But I will keep looking into it.
User avatar
No.19008
tlindner
Tester
Jun 21, 2021, 16:53
Arjhacker has a better fix with https://github.com/mamedev/mame/commit/9c002bd2642a73e240d37f6c8528a22b880af590
User avatar
No.19041
robcfg
Tester
Jun 26, 2021, 10:00
edited on: Jun 26, 2021, 17:16
Hi,

This is great news, thanks a lot!