ROM Hack [Tutorial] Multi Stream BCSTM Stuff

AHP_person

Well-Known Member
OP
Member
Joined
Nov 2, 2014
Messages
364
Trophies
0
XP
508
Country
United States
First of all, awhile back I looked into BCSTM and BCWAV format, mostly for looping purposes. I learned how they differed and such and how channels were stored.
My Documentation: http://pastebin.com/1mER2KkD

What I have learned is that in BCSTMs with multiple streams do not have a stream count. Streams are called by the 3ds, and are actually just more channels in the file.


Exporting Streams from BCSTMs to .wavs:

Things you'll need:
-A BCSTM to pull streams from (duh)
-Foobar and the VGMStream plugin, or Every File Explorer
-Latest Audacity

1. Pick any BCSTM you want to pull streams from.

2. Open it in foobar and right click>convert>quick convert,
or Open it in Every file Explorer and Go to File>Save As... and choose .wav

3. Export as .wav

4. Open the .wav in Audacity

5. All of the channels will just be sitting there, so feel free to pluck out what you need according to what stream you want to listen to.

-Bonus: You can extract Wii U BFSTM streams the same way! :)


Creating BCSTMs with more than 2 channels from .wavs:

Things you'll need:
-Latest Audacity
-Every File Explorer (Just until I can find something else that can loop and export more than 2 channels)

1. Open up Audacity

2. Go to Edit>Preferences>Import/Export and check "Use custom mix"

3. Have all of the .wavs you want to import

4. Drag them into audacity in order (If you're replacing a file in a rom, use the same order as the original)

5. When you have that done go to File>Export Audio

6. Save as .wav, it'll prompt you with the list of channels in order.

7. Once it's saved open Every File Explorer

8. Go to File>New from File>Nintendo 3DS Plugin>CTR Stream (CSTM) and open your .wav

9. Go to File>Save and save your new BCSTM


I don't know how useful this would be to others, but I know MK7 uses multiple streams for it's BCSTMs so there's that.
 

AHP_person

Well-Known Member
OP
Member
Joined
Nov 2, 2014
Messages
364
Trophies
0
XP
508
Country
United States
You can convert bcstm with Every File Explorer to wav aswell.

lol, I just like foobar and vgmtream cause I can play all these vg songs real easily, but I guess I can add that. You plan on supporting looping any time soon? I might take a crack at editing some brstm converters' source if not :P
 

s1nharvest

Well-Known Member
Newcomer
Joined
Jan 7, 2015
Messages
60
Trophies
0
XP
298
Country
United States
What about converting .wav to .BCWAV? Is the process the same(besides the limitations of the .BCWAV), just pick .BCWAV in EFE?
 

AHP_person

Well-Known Member
OP
Member
Joined
Nov 2, 2014
Messages
364
Trophies
0
XP
508
Country
United States
What about converting .wav to .BCWAV? Is the process the same(besides the limitations of the .BCWAV), just pick .BCWAV in EFE?

I don't think it supports BCWAV, use ctrtool. Apparently it supports CWAV, but I haven't tried it.
Code:
ctrtool --wav=test.bcwav input.wav
 

s1nharvest

Well-Known Member
Newcomer
Joined
Jan 7, 2015
Messages
60
Trophies
0
XP
298
Country
United States
I don't think it supports BCWAV, use ctrtool. Apparently it supports CWAV, but I haven't tried it.
Code:
ctrtool --wav=test.bcwav input.wav

hmmm so it looks like you can convert from cwav(actually im using a .bcstm) to .wav, but not .wav to cwav :/ , unless there is something I'm doing wrong. (by the way the .wav output was corrupted)
 

AHP_person

Well-Known Member
OP
Member
Joined
Nov 2, 2014
Messages
364
Trophies
0
XP
508
Country
United States
hmmm so it looks like you can convert from cwav(actually im using a .bcstm) to .wav, but not .wav to cwav :/ , unless there is something I'm doing wrong.

As I said, I haven't tried it, who knows? I know the ctr sdk has the option, but I don't know what else.
 

loco365

Well-Known Member
Member
Joined
Sep 1, 2010
Messages
5,457
Trophies
0
XP
2,927
Thought I'd mention that vgmstream has a test application that you can pair the dll with and you can dump the raw audio in wav format. It also has a pile of parameters to allow you to even rip only as much as the stream actually has without loop data. It can also dump information of a particular file as well. It's actually rather useful.
 

AHP_person

Well-Known Member
OP
Member
Joined
Nov 2, 2014
Messages
364
Trophies
0
XP
508
Country
United States
Thought I'd mention that vgmstream has a test application that you can pair the dll with and you can dump the raw audio in wav format. It also has a pile of parameters to allow you to even rip only as much as the stream actually has without loop data. It can also dump information of a particular file as well. It's actually rather useful.
Wow that sounds neat, I'll check that out when I get home.
Hm. I'll look into it more, I may have forgot something, thanks for the reply.
 

The Real Jdbye

*is birb*
Member
Joined
Mar 17, 2010
Messages
22,124
Trophies
3
Location
Space
XP
11,458
Country
Norway
General chit-chat
Help Users
    KenniesNewName @ KenniesNewName: On them hoes