More than a month ago, while vgmrips was down, I made an XM to VGM converter that targets the YMZ280B (2×). It's a quite obscure chip, but ValleyBell suggested that and it's indeed a neat choice. ValleyBell also gets tons of credits for his help since he basically explained me everything about that chip (along with the usual tips about the VGM format itself).
So, how does this work. You take an XM file you like and you can convert up to 16 channels (dual 8 channels) to a VGM file. If you want, nothing prevents you from merging the resulting VGM file with other ones to have many chips in the same file.
Not all the XM effects are supported, once again. But the compatibility list is quite wide.
It runs in Windows 95 or better. Requires msvbvm50.dll
Now, more details.
Compatibility list:
- Effects
- 100% supported: 0xx, 1xx, 2xx, 3xx, 5xx, 8xx, 9xx, Axx, Bxx, Cxx, Dxx, E1x, E2x, EAx, EBx, Fxx, X1x, X2x.
- Partially supported: 6xx (rendered as Axx)
- Not supported but planned: E5x, E6x, E8x, E9x, ECx, EDx, Txx
- Not supported and not planned: 4xx, the other half of 6xx, 7xx, E3x, E4x, E7x, EEx, Gxx, Hxx, Kxx, Lxx, Pxx, Rxx
- Volume Column
- 100% supported: Set Volume, Volume Slide Up/Down, Fine Volume Slide Up/Down
- Not supported and not planned: everything else
- Other known unsupported things:
- samples with bidirectional loops (the YMZ280B just can't do them, I'd need to alter the sample data by hand, to add a backwards section at the right place)
- pan and volume envelopes
- Amiga frequency table (liner frequency table is always used)
- notes higher than 88200Hz. Don't be surprised, they happen quite often in chiptunes (but not only in them), you just don't notice that because your module player of choice resamples everything; in that case, though, the YMZ280B overflows instead and you get very low notes
Outrun2k (16-channels)
Kefrens Vector (4-channels)
Bub & Bob Shuffle (12-channels)
Heaven Revived (10-channels)
Commercial Rhythm (12-channels)
Dreams (16-channels)
Infinity (9-channels)
I Feel Happy! (16-channels)
Outrun Medley (4-channels)
As you can see, this is far from perfect, and the conversions are a bit rough. Still, it was a nice exercise for me.
Also: I did my best to write the best code possible, and I even commented it. This is unusual for me since my code is unreadable most of the times, but I really wanted to Open Source it this time. You're all encouraged to make improved versions (*cough* ValleyBell *cough*).
Download links:
Win32 executable (RAR file, 24538 bytes).
Visual Basic 5 source code (RAR file, 15188 bytes).
Sayonara~
edit: dropbox'd, imgur'd