Some years ago, I wrote some PHP code to convert YM files originally created for the Atari ST to an Intellivision format, along with a CP-1610 assembly player. I was recently asked to share this code, so I thought it would be better to make a public release here, in case other people are interested. The PHP code is pretty bad and not especially fast, but it gets the job done.
A YM file basically consists of a large dump of the AY-3-8910 registers, compressed with the LHA algorithm. I'm using this program to unpack the data (the Windows built is included in the archive). The PHP script processes the raw data and re-compress it into the final Intellivision format. The output of this process is a .asm data file which is compatible with the player. If the 5th argument of the ymToIntv::process() method is set to true, it will also attempt to generate the player ROM file, provided that as1600 is available in the path. Again, a Windows environment is assumed, but it should be very easy to have it running in another OS (see ymToIntv::generateRom()).
Some YM files include information about special PSG effects. Most of them rely on high-frequency interrupts. These effects are ignored, as the Intellivision would not be able to render them anyway. Consequently, not all YM files can be properly converted. YM files sometimes come in several versions. If possible, choose a version without Digidrums and without SID Voice.
The following tunes are included as examples:
- Best part of the Creation by Gunnar Gaubatz
- Chambers of Shaolin by Jochen Hippel
- Crapman Anthems by Joe Maarten de Man
- Cuddly Demos / Big Sprite by Jochen Hippel
- Custodian by David Whittaker
- Decade Demo / Giga-Dist by Nic Alderton
- Ghouls'n Ghosts Theme by Tim Follin
- Hystanders 2 by Doclands
- Leaving Teramis by Jochen Hippel
- Line of Fire by Tao
- Primus by Scavenger
- Rectangular Waves by Nils Feske
- R-Type Intro by Wally Beben
- Sharpness Buzztone by Jean-Sébastien Gerard
- Virtual Escape by Furax
- Zynaps #1 by Dave Rogers