Previous Thread
Next Thread
Print Thread
#111274 - 11/14/17 06:41 PM Fairlight CMI  
Joined: Nov 2017
Posts: 1
SynaMax Offline
Member
SynaMax  Offline
Member

Joined: Nov 2017
Posts: 1
Hi!

I recently found out that MAME has a driver in early development for the famous Fairlight CMI, the world's first digital sampler. Huge thanks to Just Desserts and Phil Bennett for their phenomenal work on the driver so far!

Currently, the driver will only allow the machine to boot into diagnostic disks. Regular Fairlight System Disks don't boot as of yet.

As a big fan of MAME and this historical machine, I decided to look into the diagnostic disks for the machine and see if I can figure out what is causing the machine to not boot those System Disks. Using "QDOSDIAG.IMD" from Fairlight US's website, we have several tests we can run from this disk image.

The first one is CMITST. You can use LIST to list all the avaliable tests functions that are inside CMITST. We're going to do a couple here. Some don't work because they deal with the analog filters and other components that aren't implemented yet (to my knowledge).

The memory test (MEM) on the channel cards pass!

[Linked Image]

You maybe wondering what "Segment Random Access" means. Fairlight liked to use several unique terms for digital audio that we don't use today. Instead of letting the user have the ability to edit every single PCM audio data sample inside a Fairlight sound file (file extention *.VC), the user edits "segments" of a sound, which basically a chunk of the PCM audio data, 128 samples in length. Every VC file has 128 segments in it. If we were to look at the raw PCM audio data from a VC file, you would see that there are exactly 16384 samples in it. 128 (samples) * 128 (segments) = 16384 samples. So, in that "Segment Random Access" test, it is randomly selecting one of the 128 segments that comprise the PCM data in the channel card RAM.

The DUMP command allows us to look at one of these segments in the Channel Card RAM.

[Linked Image]

The TIM command tests the Timer on the 6840. The CMI IIx Service manual explains what the test do in detail on page 86.

[Linked Image]

The RAMP command deals with Envelope Control and actually produces sound (albeit glitchy). The VOL command also produces sound as well. This command requires you to hit the spacebar to continue with the next RAMP test.

[Linked Image]

The PIT command doesn't pass, which deals with the master pitch rate multipliers on the Channel Cards.

[Linked Image]

So with the exception of a couple of the tests, everything else seems to pass.

Then we run CMIINT, which tests all the Interrupts in the CMI. Immediately, we see something is not right.

[Linked Image]

All the Interrupts are listed as active:

[Linked Image]

Hopefully, with further testing and debugging, we can soon boot into the CMI system disks. Speaking of system disks, I loaded an earlier revision of the system disks (V12, instead of V19) and got this screen without any crashes from MAME:

[Linked Image]

We're getting close!

#111282 - 11/16/17 06:28 AM Re: Fairlight CMI [Re: SynaMax]  
Joined: May 2005
Posts: 19
Luigi30 Offline
Member
Luigi30  Offline
Member

Joined: May 2005
Posts: 19
I was just looking at this driver today after going on a Peter Gabriel kick. It looks like the current problem is that the channel cards are undocumented beyond the schematics that are available. The service manual (which goes into great detail about every other part of the machine) just has a basic overview and says they’re proprietary technology that must be returned to the factory for service. The PIT tests send some data to an unimplemented register and promptly fail, for example. I’m not sure how you’d get around that without having a CMI IIx to compare with.


Who's Online Now
5 registered members (Luengo, Breiztiger, Duke, Dam0, sof-max), 18 guests, and 4 spiders.
Key: Admin, Global Mod, Mod
Shout Box
Forum Statistics
Forums9
Topics8,436
Posts109,391
Members4,764
Most Online225
May 26th, 2014
Powered by UBB.threads™ PHP Forum Software 7.6.0
Page Time: 0.024s Queries: 15 (0.009s) Memory: 4.9317 MB (Peak: 5.1151 MB) Zlib enabled. Server Time: 2017-11-19 10:42:56 UTC