2013年1月22日火曜日

WiiWare ドラキュラ伝説ReBirthのSoundを弄る

他にいい方法があるのかもしれないけど、詳しく知らないので・・・覚え書き程度で。

Wiiにはbrstmっていうストリーム形式のサウンドファイルが使われてるゲームがあって、大抵のものはストリームデータとサウンドデータが一緒になってる(?)みたい。

有名どこではスマブラとかマリカといったビッグタイトルにも使われていて、色々と弄られてるようです(笑

それらのものはWinampとか、その他色々と再生するソフトがあるから、WAV化してサントラ作ったりは簡単にできる。

PICT8019

で、先日Wiiウェアのドラキュラ伝説ReBirth購入して少し遊んだんですが、音楽がなかなか綺麗で取り出しておきたいなぁ、と。

展開して中身を見てみると、

WiiDracula1

brstm(ストリーム情報)ファイルと、ogg(サウンド)ファイルに分かれてまして。

このままではbrstmだけでは当然音は鳴らず、oggは聞けるけどもループするような音楽は途中で切れて宜しくない。

oggのみでループさせてもループ開始位置が異なります。

海外版ドラキュラはマージされたものが入ってるらしいんだけど、残念ながら持ってません。

なので、マージされた通常のbrstm形式(?)にしてみることにしたのですが、brstm情報とogg>wav変換したサイズが合わないので普通にはマージできない。

ってことで、新規で作ることにします。

使うツールは、

・ogg>wav変換できるもの(今回はxrecodeⅡ

BrawlBox

・Wii Music Rip Tools V2(公式がわからないから探してね)

(↑この中のtest.exeのみ使用)

.

まずoggをwavへ変換する。

サンプルでステージ1(st1.ogg)のサウンドを使います。

brstm1

次に、元のストリーム情報を見るのですが、BrawlBoxでも見れなくないのだけど、ドラキュラのbrstmファイル開くと例外処理エラーとなって心境的によろしくないので、Wii Music Rip Tools V2に同梱されてるtest.exe(CMD用、同フォルダ同梱dll必要)を使って情報を見ます。

brstm2

とりあえず情報のみだから、mオプションを付けて実行、ここで必要なのはloop startとloop endの数値です。

どこかへ覚え書きしておいて、次はBrawlBox使って新規でbrstmを作る。

brstm3

ここで先ほど変換したwavファイルを選ぶ。

brstm4

すると上のようなウィンドウが出てきてLoop項のStartが0、Endが1825536と確認できます。

(ループするサウンドであればLoop項のEnableチェックを入れる)

このままだと最後が途切れるし、ループすると変な繋ぎになる。

このend値の差は何か?というと、test.exeの情報はストリームデータ+サウンドデータの値で、BrawlBoxの値はサウンドデータのみの値って事ですね。

んで、どうすれば良いかですが、変更するのはStart値だけで、やることはただの引き算ですw

BrawlBoxのstart値=test.exeのstart値-(test.exeのend値-BrawlBoxのend値)

つまり、

305536=315392-(1835392-1825536)

ですね。

この数値をStartへ書き込めば正常にループできるサウンドデータになります。

brstm5

左下のLoopにチェックを入れて、正常にループできているか再生して確認し、OKなら右下のOkayボタンを押す。

エンコーディングが終わって元のウィンドウだけになります。

brstm6

この時右側のストリーム情報を見るとわかりますが、start&end値がtest.exeの情報と一致している=正常にストリーム一体型にできたって事になります(^-^)

brstm7

最後に、Fileメニューから保存するのですが、拡張子を省略するとwav保存になってしまうので、拡張子(.brstm)付けるのを忘れずに

と、PCで聞くだけならココまでの工程で終わりなので、以下は無視で(笑

.

次、自分でサントラ作りたい場合。

マージしたbrstmファイルを使ってwavファイルを作るのですが、何回ループさせてフェードアウト調整して・・・と作業するのは面倒なので、上のほうで使ったtest.exeを使って簡単に作っちゃいます。

brstm8

readme見てもわかるんだけど、オプションでループ回数やフェード時間などが指定できます・・・ってか、サントラ作るだけならこの2つでいいかな。

上で作ったDracula_Stage1.brstmを、ループ3回、フェードアウト12秒なら、

test –o Dracula_Stage1.wav –l 3  -f  12.00 Dracula_Stage1.brstm

といった感じに。

brstm9

これを一つ一つコンバートするのは大変なので、やる時は全部のサウンドをbrstmにマージしてから一括でコンバートしたほうが楽。

(test.exe同フォルダにある_convert.batで)

因みに、ドラキュラの場合、違うところにSEも入ってるから、曲の合間合間に入れていけばなかなか雰囲気のあるサントラできるんじゃないかなぁ、と。

.

ココまで読んで感のいい人はお分かりかと思いますが、brstm作成してtest.exe通してやれば、どんなサウンドファイルでも同じように簡単に作成できてお手軽サントラ作りができるので、面倒な人は活用しましょう(笑

PICT8023

ってことで・・・何気に長くなったなぁ・・・

13 件のコメント:

trickart さんのコメント...

brstmのループとフェードアウト自動で出来るんですね!
これならスマブラのサントラ作れるかも。

MOTHER2の自作VCですがまだうまく行ってませんorz

ベースのwadが悪いのかと思い、今日聖戦の系譜をダウンロードして分解してみたのですが、また仕様が変わっていました・・・
pcmがHuf8○○○○.pcmというファイル名でromがLZ77○○○○.romというのに変更されていました。

pcmの方は普通にhuf8.pyで復号できたのですが、romのほうが復号できません。(^_^;)
lz77.pyとかlz77Mii、DSDecmpなど色々なツールを試したのですがダメです・・・

どんどん深みにはまっていってますね・・・

ぽんRev さんのコメント...

test.exeは何気に便利ですね(笑
今日は販売されてるドラキュラReBirthオリジナルサントラの曲目を参考にして、ボスのセリフ挟んだりしてサントラ作ってましたw
ループ&フェードが自動でやれると時間の短縮ができるのでお勧めです(^-^)

>MOTHER2の自作VC
ベースにするwadとかも関係あるんでしょうか?
ん~、よくわからない。

>romがLZ77○○○○.rom
あら、全部同じ仕様では無かったのですね(^-^;
LZ77はShowMiiWadsでもできませんでしたか?
他はあったかなぁ・・・
私もVC-SFCでまだ購入したいものあるので、購入したら中見てみますね。
運よく同じ形式であれば調べられるんですが、こればっかりは開けてみないとわかりませんね(^-^;

trickart さんのコメント...

>LZ77はShowMiiWadsでもできませんでしたか?
ShowMiiWadsの解凍系の機能は○○Miiってアプリを利用しているようです。ShowMiiWadsのGoogleCodeでもツールセットが配布されてますね。
LZ77MiiもShowMiiWadsもダメでした。

YouTubeにEarthBound(MOTHER2)の自作VC作っている動画がありましたがベースがDonkey Kong Country 2(SDK2)らしいんですよね。

http://www.youtube.com/watch?v=VgZDj-PsUio

しかしSDK2は配信終了したばっかりで・・・
TwitterのフォロワーさんがMOTHER2とSDK2の組み合わせで試してみたようですができたようです。

https://twitter.com/WedyDQ10/status/293629878882930688

なんかMOTHER2にはコピーガードがかかっているようです。それがVC化に影響しているのかもしれないみたいですが。

ぽんRev さんのコメント...

LZ77はわからないので一先ず置いといて(ぉ

>YouTubeの動画
この人はバナーから説明書まで、完璧に変更しちゃってて凄いですね(笑
身近に(?)バナー換えてる人は知ってるので、やる気になれば・・・私でできるかなぁ(^-^;

>Twitterのフォロワーさん
Inject久々に見てみました。
やっぱり元のWADサイズ(ROMサイズ?)は関係有るみたいですね。
で、ちょっと思ったんだけど、Mother2はHiROM、フォロワーさんが書かれてるすってはっくんもHiROMでROMサイズ同じなので、もしかしたら・・・ですね。
で、私が購入予定だったものにファイナルファイト・タフがあって、これはSDK2と同じ32MbitのHiROMだから、多分いけるんじゃないかなぁ、と。
中の圧縮方法がわかんないけど(^-^;

ってことで、今タフ購入してみましたので、置き換えできるか試してみますねw
今丁度NANDバックアップ終わった(笑

ぽんRev さんのコメント...

え~、タフダメでした(笑
タフはROM情報では32Mbitみたいですが、どうも実ROMサイズは24Mbitのようですね。
で、結果的にWADサイズが小さいからエラーになってできないぞ、という結果に(^-^;

ってことで、もし今後チャレンジするのであれば、
実ROM32Mbit-HiROM仕様、元が特殊チップ未使用のもの、WADサイズは少なくともSDK2以上必要ってのが条件ですかね。
これに当てはまるものがVCで置いてあるかは調べてないのでわかりません(笑

因みに、タフはROM、PCM共にLZH8でした。

ぽんRev さんのコメント...

あ、NPのはじまりの森なんかいいかも。
WADのサイズがわかんないけど~

trickart さんのコメント...

WiiUのVCでMOTHER2配信されるそうです。

http://blog.esuteru.com/archives/6882442.html

数日間に渡る苦労が・・・まぁWiiには来ないみたいなのでWiiでやる価値はあるんでしょうけどなんかやるせない・・・orz

LZH8のwadもあるんですね。
ROM32Mbit+HiROM仕様ですか。SDK2は60ブロックらしいです。
Injector使うとそれ以上のサイズじゃ無いといけないのかな?
カービィSDXは50ブロックほどでしたがNINTENDOロゴなどは表示されたのでブロックサイズは関係ないのかと思っていました。

またニンテンドーポイント買おうかなー。

ぽんRev さんのコメント...

>WiiUのVCでMOTHER2配信
こればっかはわからないので仕方が無いですねぇ(^-^;

>SDK2は60ブロック
ってことは、1ブロック350KB計算でWADサイズ的には21MBぐらいあればOKかな?
Injector使うとベースWADのサイズと同じになるように作ってくれますね。
なので、ROMの圧縮率によって使える場合と使えない場合があるのだと思います。
SDK2はROM圧縮率が少なくて使える領域が多いのかな。

今ネット調べてみると、はじまりの森のブロック数は63だそうなので、脈ありかもですね。
一応候補にあったので、気が向いたら購入してみますw

でも、もうじきGBCFlasherPCB届くので、Wiiでの暇つぶしも終わるかもかなぁ(笑

trickart さんのコメント...

少し調べてみたのですが、MOTHER2のROMはもともと24Mbみたいなんですよね。

http://superfamicom.org/info/mother-2-gyiyg-no-gyakushuu

でもスマブラから切り出したROMはエミュで読み込ませると32Mb。だからファイナルファイトタフやFF6でダメだったのかも。(いずれも24Mbのようです)

またコピーガードのことを考えると64KbのSRAMがいいみたいです。

http://earthboundcentral.com/2011/05/earthbounds-copy-protection/

他に32MbHiROM、64Kb(8KB)SRAM、VC配信となると、
ロマサガ3
クロノトリガー
聖戦の系譜(LZ77でお手上げ)
くらいしか見つかりませんでした。(探せばまだあるかもしれませんけど)

32Mbじゃなくて64Mbならまだあるかもしれませんが64Mbでいいのかすらわかりませんね。

ぽんRev さんのコメント...

丁度書こうとしたらコメントが(笑

>スマブラから切り出したROMはエミュで読み込ませると32Mb
これは、ROMのヘッダ情報が32Mbitとして記録されてるから表示されるだけですね。

で、はじめての森で試したところ、できましたw
WADサイズ的には17MByteでちょっと不安でしたが、とりあえず初期動作だけは問題なく動く事を確認できました(^-^)
で、それならって事でバナーやら弄ってたんですが、どうもツール自体が日本語を上手く認識できないようで、どっかでエラーが起こって無理でした(^-^;
最後のセーブ箇所だけクリアできればってトコまでいったんですが。

因みにUnicode変えたところでデータ内の文字認識でエラーになるっぽいから、ベースのWADは海外版のが安定するかも。
・・・Wiiリージョンチェンジして海外版購入とかメンドイけど(笑

とりあえず動きましたって事で。

trickart さんのコメント...

私もはじまりの森で出来ました!
他のところも差し替えようと思うのですがどこがどこに対応してるのかよくわからないですね。
vc_save_injectorはエラーで落ちるし…今日はROMと説明書の差し替えだけで寝ます(笑)

ぽんRev さんのコメント...

一応おとうさんTELセーブまでプレイしてちゃんと保存されてるから、多分大丈夫でしょうね(笑
プロテクト問題、おそらく名作に入ってるものはバイナリ書き換えられてるから、その時点でフリーな状態な気がしますがどうでしょう?
思いっきり推測100%なので、真偽のほどはわかりませんw
どなたか名作から取り出したROMでプロテクト引っ掛かった人がいればどちらかわかるんですけどね(^-^;

で、バナー&絵の変更箇所。
http://www.youtube.com/watch?v=pgVzb0Quko4
この動画拝見されてますよね?
おそらく同じやり方でいけるはずなんですが・・・やはりツールがエラーになったりして私は上手くできませんでした(^-^;
U8はShowMiiWadsで問題ないんですが、HowardCさんのツールがどうも相性悪いらしくて、オーバーフローやらのエラー出ますね。
もう一方の(名前忘れたw)U8_extシリーズのツールも同じくエラーで・・・

上コメで日本語が・・と書いたけど、海外でも同じ症状の人がいることから、PCの環境orベースとなるwadファイルに原因があるのかもしれません。
VC6のランタイム、FM2.0のdllもインストしたんですが無理でした。

一応、日本語環境でHowardCさんのU8 toolで00000000.appのIMET見るとタイトル全て空白で、Unicode変更(USモード)して試すとちゃんと「はじまりの森」と出てくることから、OS的な問題は少なからずあるのかなぁ、と感じております。

仕方が無いから今後のためにも英語WinPC作っておこうかなぁ、と思っているとこで止めました(ぉ

で、昨日になってようやくPCB届いたから、Wii止めて工作に移りますw

落ち着いたらまた挑戦したいですね(笑

匿名 さんのコメント...


マリオRPGなんですが、romがLZ77、pcmがHuf8で圧縮されています。これを解凍しsmcにすることはできるのでしょか?
また、Huf8の復号ができたとあるんですがHuf8.pyでやったそうなんですが、それはどうやって復号するのでしょう?