Difference between revisions of "YMX"

From Sega Retro

(New page: '''YMX''' is a voice bank format which contains a collection of YM2612 voices, invented by Saxman for use in his Sonic QX program. It has been since implemented, to different e...)
 
m
Line 45: Line 45:
 
24 - register 042
 
24 - register 042
 
25 - register 043
 
25 - register 043
Bytes 26-35 - voice name in ASCII format</pre>[[Category:Data Formats]][[Category:Music]]
+
Bytes 26-35 - voice name in ASCII format</pre>It should be noted that the voices are stored in the format used by ''[[Sonic 2]]'', so some [[:Image:VoiceOperators.png|byte swaps]] are needed to use those voices in the other Sonic games that use [[SMPS]].[[Category:Data Formats]][[Category:Music]]

Revision as of 15:52, 3 January 2009

YMX is a voice bank format which contains a collection of YM2612 voices, invented by Saxman for use in his Sonic QX program. It has been since implemented, to different extents, in other music-related hacking programs, such as Sonic One Music Editor, xm3smps, and xm4smps.

Specifications

The official specifications for the YMX format have been released by Saxman amongst the documentation included in Sonic QX. An verbatim extract from the original file follows.

Header

First 6 bytes - 59 4D 32 36 31 32 (YM2612)
Byte 7 - format <reserved -- leave it as 00>
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

It should be noted that the voices are stored in the format used by Sonic 2, so some byte swaps are needed to use those voices in the other Sonic games that use SMPS.