Ever since the beginning of November, I've been developing a tool similar to xm3smps, but with several improvements made to it. Now, it's finally ready for its first release. Behold: xm4smps! Created entirely from scratch, xm4smps has an interface similar to xm3smps' (but with my own touch). Internally, however, xm4smps is completely different from xm3smps. Some of the key differences to note: - xm4smps generates songs in ASM format as opposed to raw song binaries, though they are assembled for the convenience of the user. - By reading and converting each pattern of the XM separately, and comparing them individually within each channel, several optimisations can be achieved. For this reason, in about 95% of cases, a song converted by xm4smps will be smaller than the same song converted by xm3smps. - xm4smps is multi-platform. - It supports the E7 coordination flag (aka "smpsNoAttack"). Using xm4smps is very similar to using xm3smps, since I intentionally made the user interface similar. Therefore, it shouldn't be complicated to adapt at all. However, a very important point needs to be made here. Due to the different way in which xm4smps converts songs, it is absolutely imperative that you do not, under any circumstances, start a channel on the XM without a note or a rest. In other words, don't do this: Instead, do this: Download links: Win32 version Win64 version Mac OS X version Source code (should compile on any system with the Qt library) To use xm4smps on Windows, you only need to extract and run it. To use it on Mac OS X, it's a similar concept, however, if you wish to be able to assemble binary song files, as opposed to only getting the assembly source, you need to install ASMX by Bruce Tomlin (ASMX is already included in the windows versions). On Linux, you should compile it using "qmake xm4smps.pro; make" (if you're using QT3) or with "qmake xm4smps.pro4; make" (if you're using QT4). Like with Mac OS X, you also need to install ASMX if you want to be able to generate binary files. To put the E7 coordination flag behind a note, just put "g15" in the volume column of said note on the XM (that represents a maximum-speed note portamento, which pretty much does the same thing as E7) Special thanks go to: - Nineko for doing the original xm3smps, and helping me along when making this tool - Tweaker and Saxman for breaking down the SMPS format - Marc/Cinossu for developing s1smps2asm (I included the s1smps2asm macros with this tool, with his permission) - roxahris, Nineko (again), and oerg866, for testing this - Bruce Tomlin for creating ASMX, which is used by this tool to assemble the output asm. Have fun!