07-14-2014, 08:23 PM
(This post was last modified: 06-09-2016, 10:36 PM by puggsoy.)
VGSC (Video Game Sound Converter) is a program that basically has the ability to convert a range of different video game audio formats into .wav files. It can do multiple files at once, and it can be a mixture of formats.
The program uses a library called vgmstream, which does that actual converting. The range of file formats is quite large, and will hopefully include what people here wish to convert. I should point out that my program is only a wrapper and I cannot add to or modify the conversion code, so please don't ask me to.
Unfortunately I'm not really useful at C++ or C# or any language that could use this library properly. I do know Haxe though, which can run separate programs.
On the very page that I linked to above, there's a link to some builds of a test program. This test program is basically a command-line application that samples what the vgmstream library can do. It's not exactly meant to be used properly, but it's got a few parameters that customize how files are converted. Unfortunately this is very tedious and pretty much useless if you want to convert a bunch of files, since it can only do one at a time.
What my application does is it accesses files selected by the user, feeds them through to this program (along with some parameters) and then the program does the rest, producing a .wav file. All my program really does is makes it easier for people to use this program, giving it a UI and the ability to convert multiple files.
How to use
There are two ways to use this. The first and most straightforward way is to just open VGSC.exe, you'll see this:
A file opening dialog will come up. Navigate to and select the files you want to convert. Now a folder selection dialog will appear; use that to select the folder you want the converted files to be saved in (note: the folder must exist beforehand). You'll see a bunch of text come up, similar to this:
This is just information about the files it's converting. You'll notice that files aren't compatible if you see "failed opening".
The other way you can run it is just through the command-line, either using the command prompt or writing a .bat file. This is the usage:
Code: VGSC inDir outDir
inDir: Path to directory containing files to convert
outDir: Path to directory where converted files will be saved
I'm planning to add extra optional arguments in the future that affect how the files are converted. For now however, this is probably not the option most people will use.
Compatibility
Here is a list of the currently supported files according to the vgmstream readme (you can find the readme itself in the vgmstream subfolder of the application). I can't guarantee that all or most of these will work, I've only tested a few of them. However I believe that as long as you got the file from the console associated with its extension below (e.g. a .ss2 file from a PSX game), it should probably give you some results.
vgmstream readme Wrote:--- File types supported by this version of vgmstream ---
As manakoAT likes to say, the extension doesn't really mean anything, but it's
the most obvious way to identify files.
PS2/PSX ADPCM:
- .ads/.ss2
- .ass
- .ast
- .bg00
- .bmdx
- .ccc
- .cnk
- .dxh
- .enth
- .sir
- .filp
- .gcm
- .gms
- .hgc1
- .ikm
- .ild
- .ivb
- .joe
- .kces
- .khv
- .leg
- .mcg
- .mib, .mi4 (w/ or w/o .mih)
- .mic
- .mihb (merged mih+mib)
- .msa
- .msvp
- .musc
- .npsf
- .pnb
- .psh
- .rkv
- .rnd
- .rstm
- .rws
- .rxw
- .snd
- .sfs
- .sl3
- .smpl (w/ bad flags)
- .ster
- .str+.sth
- .str (MGAV blocked)
- .sts
- .svag
- .svs
- .tec (w/ bad flags)
- .tk5 (w/ bad flags)
- .vas
- .vag
- .vgs (w/ bad flags)
- .vig
- .vpk
- .vs
- .vsf
- .wp2
- .xa2
- .xa30
GC/Wii DSP ADPCM:
- .aaap
- .agsc
- .amts
- .asr
- .bns
- .bo2
- .capdsp
- .cfn
- .ddsp
- .dsp
- standard, optional dual file stereo
- RS03
- Cstr
- _lr.dsp
- MPDS
- .gca
- .gcm
- .gsp+.gsp
- .hps
- .idsp
- .ish+.isd
- .lps
- .mpdsp
- .mss
- .mus (not quite right)
- .ndp
- .pdt
- .sdt
- .smp
- .sns
- .spt+.spd
- .ssm
- .stm/.dsp
- .str
- .str+.sth
- .sts
- .swd
- .thp, .dsp
- .tydsp
- .vjdsp
- .waa, .wac, .wad, .wam
- .was
- .wsd
- .wsi
- .ydsp
- .ymf
- .zwdsp
PCM:
- .aiff (8 bit, 16 bit)
- .asd (16 bit)
- .baka (16 bit)
- .bh2pcm (16 bit)
- .dmsg (16 bit)
- .gcsw (16 bit)
- .gcw (16 bit)
- .his (8 bit)
- .int (16 bit)
- .pcm (8 bit, 16 bit)
- .kraw (16 bit)
- .raw (16 bit)
- .rwx (16 bit)
- .sap (16 bit)
- .snd (16 bit)
- .sps (16 bit)
- .str (16 bit)
- .xss (16 bit)
- .voi (16 bit)
- .wb (16 bit)
- .zsd (8 bit)
Xbox IMA ADPCM:
- .matx
- .wavm
- .wvs
- .xmu
- .xvas
- .xwav
Yamaha ADPCM:
- .adpcm
- .dcs+.dcsw
- .str
- .spsd
IMA ADPCM:
- .bar (IMA ADPCM)
- .dvi (DVI IMA ADPCM)
- .hwas (IMA ADPCM)
- .idvi (DVI IMA ADPCM)
- .ivaud (IMA ADPCM)
- .myspd (IMA ADPCM)
- .stma (DVI IMA ADPCM)
- .strm (IMA ADPCM)
multi:
- .aifc (SDX2 DPCM, DVI IMA ADPCM)
- .asf, .as4 (8/16 bit PCM, EACS IMA ADPCM)
- .ast (GC AFC ADPCM, 16 bit PCM)
- .aud (IMA ADPCM, WS DPCM)
- .aus (PSX ADPCM, Xbox IMA ADPCM)
- .brstm (GC DSP ADPCM, 8/16 bit PCM)
- .emff (PSX APDCM, GC DSP ADPCM)
- .fsb, .wii (PSX ADPCM, GC DSP ADPCM, Xbox IMA ADPCM)
- .genh (lots)
- .musx (PSX ADPCM, Xbox IMA ADPCM, DAT4 IMA ADPCM)
- .nwa (16 bit PCM, NWA DPCM)
- .psw (PSX ADPCM, GC DSP ADPCM)
- .rwar, .rwav (GC DSP ADPCM, 8/16 bit PCM)
- .rwsd (GC DSP ADPCM, 8/16 bit PCM)
- .rsd (PSX ADPCM, 16 bit PCM, GC DSP ADPCM, Xbox IMA ADPCM, Radical ADPCM)
- .rrds (NDS IMA ADPCM)
- .sad (GC DSP ADPCM, NDS IMA ADPCM, Procyon Studios NDS ADPCM)
- .seg (Xbox IMA ADPCM, PS2 ADPCM)
- .sng, .asf, .str, .eam (EA/XA ADPCM or PSX ADPCM)
- .strm (NDS IMA ADPCM, 8/16 bit PCM)
- .ss7 (EACS IMA ADPCM, IMA ADPCM)
- .swav (NDS IMA ADPCM, 8/16 bit PCM)
- .xwb (16 bit PCM, Xbox IMA ADPCM)
- .wav, .lwav (unsigned 8 bit PCM, 16 bit PCM, GC DSP ADPCM, MS IMA ADPCM)
etc:
- .2dx9 (MS ADPCM)
- .aax (CRI ADX ADPCM)
- .acm (InterPlay ACM)
- .adp (GC DTK ADPCM)
- .adx (CRI ADX ADPCM)
- .afc (GC AFC ADPCM)
- .ahx (MPEG-2 Layer II)
- .aix (CRI ADX ADPCM)
- .baf (Blur ADPCM)
- .bgw (FFXI PS-like ADPCM)
- .bnsf (G.722.1)
- .caf (Apple IMA4 ADPCM)
- .de2 (MS ADPCM)
- .kcey (EACS IMA ADPCM)
- .lsf (LSF ADPCM)
- .mwv (Level-5 0x555 ADPCM)
- .ogg, .logg (Ogg Vorbis)
- .p3d (Radical ADPCM)
- .rsf (CCITT G.721 ADPCM)
- .sab (Worms 4 soundpacks)
- .s14/.sss (G.722.1)
- .sc (Activision EXAKT SASSC DPCM)
- .scd (MS ADPCM, MPEG Audio, 16 bit PCM)
- .sd9 (MS ADPCM)
- .smp (MS ADPCM)
- .spw (FFXI PS-like ADPCM)
- .stm renamed .ps2stm (DVI IMA ADPCM)
- .str (SDX2 DPCM)
- .stx (GC AFC ADPCM)
- .um3 (Ogg Vorbis)
- .xa (CD-ROM XA audio)
loop assists:
- .mus (playlist for .acm)
- .pos (loop info for .wav)
- .sli (loop info for .ogg)
- .sfl (loop info for .ogg)
Download
You can download the latest version, v2.1, here.The program is only available for Windows.
The source code is available up on Github; keep in mind this is the code for the VGSC wrapper and not the vgmstream converter.
History log
Version 2.1 (Latest version)
-Prints stuff a bit nicer
-Added readme
-Fixed a bug that didn't disable looping by default
-Updated vgmstream to r1040
Version 2.0 ( Download)
-Rewritten in Haxe
-Better stability
-No installer required
-No runtime required, runs natively
-Updated vgmstream to r1026
Version 1.2 ( Download)
-Implemented file adding/removing system
-Allowed dragging files into window
-Allowed adding of folders and their subfolders
-Made the window resizable
-The application now remembers the last folder you added files from
-Updated vgmstream to r1007
Version 1.1 ( Download)
-Added save location options.
-Updated vgmstream to r979
Version 1.0 ( Download)
Initial release. Uses vgmstream r975.
If you find any bugs, have any questions, or just want to say how helpful this is, feel free to post here or PM me
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Posts: 6
Threads: 1
Joined: Aug 2014
Does this work with wii roms?
(08-01-2014, 04:40 PM)SmashBrosFan10 Wrote: Does this work with wii roms?
I think you mean "ISOs". Anyway, it will work with some Wii sounds, read the compatibility list for supported filetypes.
Posts: 8
Threads: 2
Joined: Jul 2014
In attempting to use this program, a click to activate it causes the program to come up for a flicker of a second, then immediately vanish. Are there any user-side issues that might be responsible for this?
Oh I'm sorry about that! That's actually my fault, I forgot to include a specific file. This is an issue that happened with another application of mine but I didn't think to check if this had it as well. Thanks for catching that!
Here's the fixed version, I've updated the link in the OP as well. I've also given it the newest revision of vgmstream (I may as well) and removed some unnecessary files to shave off a few kilobytes
Hopefully it should work now!
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Posts: 8
Threads: 2
Joined: Jul 2014
08-03-2014, 08:55 PM
(This post was last modified: 08-03-2014, 08:58 PM by leokicklighter.)
The program loads up fine, but now I'm getting a "failed opening" error; the files are in .swav format, pulled using Tinke. I'm a bit of an old man when it comes to "cmd" programs; is this simply operator error, or have I possibly fouled up somewhere else along the line?
Edit: running the program as administrator, and renaming the folder to remove any non alphanumeric characters hasn't helped, unfortunately.
It sounds like the .swav files are simply unsupported. Despite the extension being in the compatability list, this doesn't mean much in terms of the actual format of the file, and they might be different from most .swav files.
If you could upload a couple I can take a look though and see if I can help. I can't modify the program to support new formats, but maybe there's some other way to convert them.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Posts: 8
Threads: 2
Joined: Jul 2014
08-04-2014, 09:50 AM
(This post was last modified: 08-04-2014, 10:11 AM by leokicklighter.)
http://www.mediafire.com/?swzz7sczszdgxru
This is the first folder's worth of files. The source game is Megaman Battle Network 5 Double Team DS.
Edit: for the record, Tinke can play them all without issue.
Edit2: SDAT Extractor has successfully ripped the whole lot. Thank you for your help, but it seems I have my answer.
Taking a quick look and comparing with some SWAV documentation, it simply looks like Tinke failed to extract them properly. Glad you found a solution though
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Posts: 19
Threads: 10
Joined: Dec 2014
I highly recommend this, it works great!
New version
Version 2.1 fixes a bug that it had where it would loop loopable files. This is default behaviour of vgmstream, but usually people will only want the file to play once when converted. I'd forgotten to add the flag to disable this, but someone informed me and I fixed it now.
I also did a couple of other smaller things like make my code a bit nicer and put it up on Github, make it print out things a little prettier (as well as a little credit thingy at the top), and updated the vgmstream version to r1040.
Enjoy!
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Posts: 49
Threads: 30
Joined: Feb 2015
tested some sdt formats and seem to ERROR.
What kind of error? If it's just incompatible then I can't do anything about that, but if it's something else it might be my fault.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Posts: 64
Threads: 19
Joined: May 2016
It wont Rip Tornado Outbreak voices why
I'm addicted to playing Tornado Outbreak.
(04-19-2017, 06:35 PM)Larryeedwards Wrote: It wont Rip Tornado Outbreak voices why Please don't necropost. Also, it seems you've intentionally made a bunch of posts in a row to reach 20. Are you intending on doing so to post a request?
|