-------------------------
DCSPlayer v0.99
Official Documentation
-------------------------

	Well, it's here... After almost 1 year of waiting, you people, at last, have
what I've promised you... The DCSPlayer! It might be buggy and slow, but it works.
Be aware that you'll need a "fast" CPU to be able to listen to the music in real-time,
otherwise you can always save your favorite music in WAVs.

What it the DCS?
----------------

	The DCS or "Digital Compressed Sound" system was developed by Williams in the
mid-90s. The goal of this system was to provide digital quality sound to games in an
easy way and without using as much memory an audio CD would use. In fact, a 4MB
DCS board can contain many near-CD quality tunes and a lot of digital sound effects.
The DCS sound system has an ADSP-2105 CPU and can hold up to 8MB of ROM. The program
contained in the ROM is used to decompress the samples which are also contained in the
ROM. These samples are compressed using the MPEG-1 codec (the ancestor of MP3). The
DCS sound system is used mostly by Williams in many pinball games and some arcade games.
Nintendo also used the DCS technology in Ultra64 (not N64) arcade games like Killer Instinct,
Killer Instinct 2 and Cruis'n USA.

Why the DCS emulation is so CPU intensive?
------------------------------------------

	Mostly because the ADSP-2105 emulation is slow. The ADSP-2105 is a DSP (Digital
Signal Processor). DSPs are mostly used to make maths and stuff like that. The ADSP-2105
is also a RISC CPU, and it can execute 1 instruction in 1 cycle and sometimes 2 instructions
in 1 CPU cycle. A multiply instruction on a x86 CPU takes much more cycles than it would on
the ADSP. The ADSP-2105 on the DCS has an high clock speed, 10.24 Mhz. That means that to
be 1:1 with the ADSP we would need to execute 10240000 ADSP instructions in 1 second. That's
way too much. On top of that, the CPU emulator is in C and it's interpretive. 
So precious time is also used to fetch, decode and execute the instructions everytime. 
Dynamic recompilation could be useful in our case since the DCS code don't change a lot.
Some high level emulation tricks could be used here also, but I don't like them because
they can scrap compatibility so easily.

User Manual
-----------
	If you already used the QSound Player you won't have problems using this player.
If not, here's the manual:

- Put your sound ROMs in thier respective directories.
- Execute the program, load your game and that's all! Play with the +/- buttons to change
  tunes.

Important Stuff Before Asking Questions
---------------------------------------
- Mortal Kombat 4 don't works, and Killer Instinct 2 don't seem to work correctly. If
  you ever find something in KI2 please tell me!
- The list of all supported games and all the ROM filenames is in 'GAMELIST.TXT'. If you
  have a game that is not listed in this file and you think it's a game using DCS, please
  tell me!
- You might need to higher your volume before hearing something. There will be a fix
  for that someday.

Special Thanks
--------------
- To the MAMEDEV for almost everything. The ADSP-2105 emulator and the DCS docs.
- To GIGATRON for the icons and for supporting me in my work.
- To SoulChip (formely matriDX) also for supporting me and for being a cool guy. Excuse me
  for all the troubles I might have caused you man!
- To Jago's effort to bring the KIAME project to a point close to success. I wish you
  happiness with your new wife!
- To Emul3t33r for providing Mortal Kombat 4 sound ROMs.
- To everybody in the now dead #KIAME channel for having hope to see this player to come one
  day and also for all the encouragements!

Contact Information
-------------------
- WWW: http://vapps.emuforce.com
- EML: jpdesjardins@globetrotter.qc.ca