FlaySID

A C=64 SID emulator for Atari Falcon 030 computers.

 

Welcome to the FlaySID homepage. The aim of this web page is to create a link between the author of this software and its users. Anyway, don't expect much from this page (such as fabulous java scripts, terrific design, incredible links, etc.) as we haven't much CPU time to waste into unuseful stuff on the Falcon 030 ;-)

What's new ?

October 5, 2002 :

* About 2000 lines of code have been rewritten/added. Nothing concerning the player itself, just stupid internal things! ...useful anyway.

* PSIDv2NG and RSID fileformat should be supported by FlaySID4 only if HVSID team & friends stop adding a new fileformat every month... ;-)

* My email will change in the middle of October (see below), but the address of the FlaySID homepage will still be "flaysid.atari.org".

Why this page ?

I changed several times my email, and some releases were done in a hurry by friends, which had the bad consequence for them to receive emails they couldn't reply to. Furthermore, I'm sure people think that I quit developping FlaySID, because they didn't see any release since 1998. This is wrong, as I said I would make FlaySID 4. I never gave any release date, but rest assured, even if I can't affort a lot of time for this project, it evolves a bit more each week.

Development history:

The first version of FlaySID was written by David "Splash" Carrère (SID and C64 emulation) and Mikhael "Myself" Myara (GEM interface = GUI). I (David) began working on FlaySID in December 1994, after seeing C64 demos and listening to SID musics using PlaySID on the Commodore Amiga. Musics were really among the coolest I had ever heard, and when I came back home, I missed them! There wasn't any program able to replay these musics on the Falcon. So, I decided to make my own SID player, called FlaySID (Falcon plays SID). I wrote a 6510 cycle-based emulator during spring and summer, 1995. I first made use of the YM-2149 soundchip processor of the Falcon (... the same as in the Atari ST) to replay the musics. After hours of work and debug, the first SID music ever played by a Falcon was output from my Atari monitor in September 1995. I then learned the Motorola DSP 56001 assembler to make a real SID emulator. In autumn 1996, the DSP player began working correctly, so I decided to release a first version (version 1.0 beta I think). Mikhael helped a lot, doing really cool GEM management routines that I could never have done myself (not enough time and technical knowledge in this field!) Several versions were released in 1997 and 1998. The last official version was 3.01, released in November, 1998. The player was far from perfect, but for a lot of tunes the result was satisfying. A first try in filters emulation was also done, but the result wasn't so great (especially with filter combination, which suffers from many bugs).

How does it works:

I'm afraid that several people who don't own a Falcon computer believed that the FlaySID SID emulation was based on sample precomputations, just as it was the case with PlaySID on the Amiga. In fact, it really isn't. The 68030 processor runs a cycle-based 6510 emulator (unfortunately, without most of the undocumented instructions and without MMU emulation) and converts all SID port writes into a stream sent to the DSP. The DSP acts as an independent SID processor. It emulates the 6510 clock (985248 Hz for the European C64) and synthetize the SID sound according to the stream sent by the 68030. So, the emulation is cycle-based even if some side effects can eventually appear as the 68030 and the DSP run simultaneously, independant from each other and at different speeds (16 Mhz for the 68030 and 32Mhz for the DSP). The problem can especially arise when a SID music tries to read the two SID read only registers: in such a case, v.3.01 of FlaySID returns a value from these registers which is not cycle-based.

What's happened since v.3.01 ?

I worked on an MPEG Layer 3 player for the Falcon called "FalcAMP" with Stghost/Sector One. I learned a lot of things from working on this project, and I improved my coding style, especially DSP-wise. I also worked on other smaller projects, such as a screen for the "Odd Stuff" ST megademo. I also spent quite a lot of time playing "The Legend of Zelda" on my N64 ;-)

Lacks of the latest version:

FlaySID was my first serious assembler programming project on my Falcon. So, the 68030 assembler code wasn't as optimized as I wanted. This is all the more true for the DSP part, as it was my first ever program for this processor. I consider that what I call the "digital part" of the SID is correctly emulated by FlaySID. By digital part, I mean basic waveforms generation, sync, ring modulation, ADSR and test bit. Please note that "correctly" doesn't mean "perfectly" :-) The "analogical part" of the SID is almost not emulated or at best roughly, this part consisting of filters (low-pass, band-pass, high-pass), resonancy, and analogical output. The mixed waveforms are emulated using samples sampled directly from my C64, as I didn't find the algorithm to reproduce them exactly. Furthermore, all my SID analyses were done using my C64 equipped with an old SID chip, so there isn't any emulation for the "new" SID chip (this emulation is very important for some demo musics).

Next version:

A new version of FlaySID is currently under development. There are over 20.000 lines of assembler code to rewrite or optimize. The first step is to clean and optimize the whole 68030 code. The second step is to complete the 6510 emulator (MMU and all undocumented instructions). The third step is to lead new analyses on the SID and rewrite the DSP code. I won't tell anything about the current stage of development, except that I have a lot of work left to do!

You can download the old v.3.01 of FlaySID here. You can also download here the never-before-released v.3.02 that I made for my own use. Since it is not stable, I don't consider it as an official release of FlaySID, so use it at your own risks! It is very close from v.3.01, with minor bug fixes.

Contact:

You are warned that I can be slow on replying to emails, so you should write me only if you consider having something really interesting to ask! :-)

Anyway, if you want to contact me, write to: splash@eupalia.com