BCSTM header to BRSTM header? by Kurausukun at 7:38 PM EST on November 24, 2014
So I have some bcstm files that I want to convert to brstm, but I don't want to decode to wav and then re-encode to brstm because that's hideous (inb4whocares). Is rebuilding the header without re-encoding possible/simple enough that an idiot like me could do it?
Me for example, would just need to look at vgmstream's source code for bcstm and brstm and then just use a hex editor to manually change everything I need to.
by Kurausukun at 12:17 PM EST on November 25, 2014
Well, I really have no idea how to read source code (at least I've never tried, I don't really know what it looks like), nor do I know where to find vgmstream's source code. BUT I had a really stupid idea that ALMOST worked--just make a brstm of the bcstm using brstmmake, and copy the header over from the brstm to the bcstm. It opens, it plays, and it loops just fine--but it sounds incredibly noisy and corrupted. Why is this/can I fix it manually?
possible way by kapodamy at 12:41 PM EST on November 25, 2014
try use Revolution B on the ripping tools page.
this tool extract BRUTE adpcm data + coeff in separate channels.
In the following way: revb.exe --extract your_stream.bcstm ch_L.dsp ch_R.dsp revb.exe --build new_file.brstm ch_L.dsp ch_R.dsp
Unless I'm misunderstanding what Revolution B is doing, that's exactly what I don't want to do--I'm not trying to rebuild the entire stream, I just want to change the header, and it seemed like I was very close to doing that.
You said it yourself before, re-encoding isn't lossless. The header data for the new BRSTM is completely different from the BCSTM. Look at kode54's github for the vgmstream source. Check src/meta/brstm.c, and src/meta/bcstm.c.
I can update the bcstm source with more specific information on the header when I get back. Drop by IRC later tonight if anything.
Well I'll be on IRC, but I'm not sure about how this will work... I looked at that source code, and I sort of understood what it meant (a little), but it wasn't really enough information for me to know what to do.