============================================================================== Sonic QX YMX File Format 00 March 04, 2004 ============================================================================== ------------------------------------------------------------------------------ Header ------------------------------------------------------------------------------ First 6 bytes - 59 4D 32 36 31 32 (YM2612) Byte 7 - format Byte 8 - number of voices (+1) in the file; -- FF is for 0 voices -- 00 is for 1 voice -- 01 is for 2 voices -- 02 is for 3 voices, etc. A YMX bank is allowed up to 128 voices. So anything above 7F is illegal. This limit is used to seek future compatibility with MIDI messages and Yamaha DX/TX conversions. ------------------------------------------------------------------------------ Voice ------------------------------------------------------------------------------ Directly after the first 8 bytes, the data for the first voice begins. There are a total of 35 bytes used for each individual voice. They follow one after another. Below are the YM2612 register equivallents to each byte in a voice. 1 - register 0B0 2 - register 030 3 - register 031 4 - register 032 5 - register 033 6 - register 050 7 - register 051 8 - register 052 9 - register 053 10 - register 060 11 - register 061 12 - register 062 13 - register 063 14 - register 070 15 - register 071 16 - register 072 17 - register 073 18 - register 080 19 - register 081 20 - register 082 21 - register 083 22 - register 040 23 - register 041 24 - register 042 25 - register 043 Bytes 26-35 - voice name in ASCII format ------------------------------------------------------------------------------ Yamaha DX/TX Conversions ------------------------------------------------------------------------------ Sonic QX doesn't have a feature to import YMX voices into Yamaha TX81Z, DX11, DX21, DX27, or DX100 banks. If you are interested in doing this, you should make yourself an "Init Voice" (see Yamaha DX/TX manuals for more information). Then replace the values with the values used in the YMX voice. Remember though that the YM2612 works with decay 1 level and detune values a bit differently. The decay 1 level values are reversed (0 = 15, 15 = 0), and the detune values are not ordered the same way (read the YM2612 documentation and the Yamaha DX/TX manuals to compare the two). For volume, the max volume on the DX/TX series is equal to the max volume on the YM2612. The bottom 28 volume values are not used in the DX/TX series. Voices are not guarenteed to sound the same after they have been ported. Some sound exactly the same, while others have a couple of problems with accuracy. The following are compatible with YM2612 voices: - DX11 - DX21 - DX27 - DX100 - TX81Z The following are NOT compatible with YM2612 voices: - DX1 - DX5 - DX7 - DX7II - DX7S - DX9 - DX200 - TX7 - TX802 - TX816 - FS1R The following are unknown as to the compatibility with YM2612 voices: - FB-01 - TQ-5 - YS series ------------------------------------------------------------------------------ Misc Information ------------------------------------------------------------------------------ Sonic QX is a music editor for the beta version of the Sega Genesis/Mega-Drive Sonic 2 ROM. It can be downloaded from http://sonicology.fateback.com/ and is still currently in development. The software makes use of it's own voice bank format (YMX) to make exchanging voices a far easier process than ever before. The current Sonic QX version is 0.31 beta (build 14). - Saxman (please don't send me any questions about this)