■[SNES] Rare SNES SPC Sound Engine (Donkey Kong Country, etc.) Specification
This document explains about Rare's sound engine for SNES and its music format.
As the title says, VGMTrans is now hosted on GitHub.
I've been trying to contact the author to realize this idea. It wasn't easy because we haven't talked for a long time, and he was busy and rarely saw emails. Anyway, I've succeeded in contacting him, and the project is now opened 4 months later from when I sent him the first email. The author, thank you very much for approving my proposal gladly! You're always very kind! :)
At the same time, he provided me the latest source code of VGMTrans. It seems to have some changes from the latest publication. The most notable thing is the Soundfont (SF2) export function, I think.
It is not so much difficult, but there are several points need to care.
This document targets VGMTrans_src_and_bin_9_29_09. Situation might be different when you try any other versions.
- Visual Studio 2008
- Express Edition is okay, but it will require some additional installations. If you can use higher edition (Professional Edition, for instance), you should definitely use it.
- Visual Studio 2010 can work fine, but you will need to rebuild static library of TinyXML*1, or you will encounter LNK2019 error (details). Precompiled VS2010 Dependencies
- Windows SDK (should be included in Visual Studio, I used v7.1)
- DirectX SDK (August 2007)
- The above is the final version that contains DirectMusic.
- WTL (7.5 and 8.0 worked)
- TinyXML (2.5.3 is included in VGMTrans source code package, but the latest version 2.6.2 works just fine too)
At least you need to download and install DirectX SDK and WTL. Both of those libraries can be installed by running setup executable, and adding include/library paths to Visual Studio. Visual Studio 2010 does not have "VC++ Directories" category, so that you need to configure it in VGMTrans.vcxproj(.user), or edit Microsoft.Cpp.Win32.user.props to have those paths, just like the following.
<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ExecutablePath>$(ExecutablePath)</ExecutablePath> <IncludePath>$(IncludePath);C:\WTL80\include;C:\Program Files\Microsoft DirectX SDK (August 2007)\Include</IncludePath> <ReferencePath>$(ReferencePath)</ReferencePath> <LibraryPath>$(LibraryPath);C:\Program Files\Microsoft DirectX SDK (August 2007)\Lib\x86</LibraryPath> <SourcePath>$(SourcePath)</SourcePath> <ExcludePath>$(ExcludePath)</ExcludePath> </PropertyGroup> </Project>
Note that you must not add those paths before Windows SDK path, or you will see an error C2061: syntax error : identifier '__RPC__out_xcount_part'
Additional Requirements for Visual Studio 2008 Express Edition
Unfortunately, Express Edition requires more installation because it lacks ATL support. Though I have never tried to use Express Edition, some anonymous developers tried the following things and solved the problem. Nice find.
- Microsoft Windows Server 2003 Driver Development Kit (for ATL headers, installation steps are the same as DirectX SDK)
- Edit VGMTrans Project Properties (from Visual Studio)
*1：TinyXML 2.5.3 is included in VGMTrans source code package, but the latest version 2.6.2 works just fine too. I recommend a newer version.