DRAGON QUEST XI Sのpakファイルの音楽ファイル(BGMであるuexp)をwavに変換するツール

bmsで全解凍でもいいのですが、音楽のみほしいので、音楽のみ抽出するプログラムを書いてみました。

リンク

変換に時間は掛かりますが、wavと、ogg変換パッチ(ループ情報あり)を出力します。

vgmstreamを使っているので同じフォルダに置いてください。

oggenc2はここらへんのを使ってください。

 

DragonQuest_XI.bmsをvc++で書いてみた

bmsをVC++で書くと結構大変。
とりあえずBGMデータだけとれればいいので、それ以外無視。(なので、zlibなど論外)
uexpのみ取り出し、反転させた状態で取り出した。
作成時間8時間くらい。
一部zlib使ってるようなので、そこも実装しないといけないんだろうなぁと思いつつ、、、
BGMデータのみ展開だとめちゃ早。

 

hcaコンバータと、zlib等を実装すれば、wavにはなるはず。

そうすれば、私のメディアプレイヤにlib形式で実装すれば、pakchunk0-WindowsNoEditor.pakドラッグ&ドロップで再生可能になるかも!?と少し考えている。

ドラゴンクエスト11sの動画とBGMに苦戦

sterm版のDRAGON QUEST 11 S をもうすぐクリアとなるので、データとなっている動画とかを変換して普通に見る形式にしたり、音楽を普通に鳴らしたりできないか試行錯誤しています。

動画の方は、usmという形式でできているので、vgmtoolboxを用いて展開可能。
展開すると、m4vとadxファイルが現れる。
m4vファイルは、中身mpgなので、エンコードしてmp4にすることが可能。
adxは苦労した。
2分28秒のデータなので、adx2wavなどで拾うと30秒ちょいのができる。
探すのは苦労したが、adx.exeというもので成功した。
usmは音声が複数あり、ミキシングしてならしているため、出来上がったものをミキシングし1つのデータとする必要がある。
ここらへんは普通のmixソフトでいけると思う。
あとは動画編集ソフトを使えばmp4のできあがり。

動画の方はなんとかなった。

問題は、音楽つまりBGMの方である。

quickbmsの4gbバージョンと、DragonQuest_XI.bmsを使用し、pakchunk0-WindowsNoEditor.pakを展開する。(8GBの方)
その中をたどっていくとsoundsというフォルダに到達する。
BGMなどが入っているところ。
各ファイルに、
SWAV_BGM_B01_long.uasset
SWAV_BGM_B01_long.uexp
と2ファイルずつある。
uassetは情報なのでここでは無視し、uexpのみ見る。

とりあえず中身を見てみる。

FFがたくさんある。
これはxorで反転せよということですねぇ。
ということで、反転させたのが以下データ。

データとしては、一応見られる状態になっている。

さて、音楽データであるだろう先頭まで降りて行ってみよう。

なにやら、0x395からデータが存在する。
おそらくここからが音楽データなのだろうが、ogg特有のOggSがない。
で、DRAGON QUEST XI S.exeを検索すると見つかるが、該当部分を切り出して、oggにしてもならない。
mediainfoでもデータが正常じゃないとなる。
ということは、このデータ部分。更に暗号化されている可能性がある。
なにで暗号化されているのかが分からないので、今はここまで。
なんとか鳴らしたいけど、ここから先行くかわからない。
ちなみにUModelや、vgmstreamでは、エラーとなる。

2020.12.30 oggへの変換できました。
形式としては、cri hca形式。
まず自作で、0xffに反転させ、SQEXtract.exeにて、ヘッダ整え、test(vgmstream)でwav化。
またまた自作でループ部分を切り出し、batファイル作成後、oggenc2にて、ogg作成。(自作ツールについては要望はあればおきます)
ループ部分
ループスタート:loopの文字列を見つけその後4バイトを取得後1024で掛ける。(正確には、色々な数字を引いたり足したりして微調整します)
ループ長:次の4バイトを取得後同じように1024バイト掛け、ループスタートの値で引く。(正確には、色々な数字を引いたり足したりして微調整します)
それを、oggenc2に渡してあげるとループ情報が入る。
loopの文字列がない場合は、ループしない。

0xffで反転させないデータも存在するので、その場合は、反転させないようにする。

動画エンコードでBSOD

PAGE_FAULT_IN_NONPAGED_AREA、IRQL_NOT_LESS_OR_EQUAL、DRIVER_IRQL_NOT_LESS_OR_EQUAL、KMODE_EXCEPTION_NOT_HANDLED等が動画エンコード中に急に出るようになった。

メモリが壊れたか?

と一番最初に疑いをもったのはメモリでした。

20H2も関連してるかもと思ったけど、
とりあえず、メモリモジュール4枚あるなかの2枚を外す。
⇒変わらず
DRAM電圧を1.35にあげてみる(1.20から)
⇒動画エンコードが最後まで通った
4枚に戻してみる
⇒BSODになってしまった。

ということで、何かしらBIOS上かメモリ上で出ていることが分かった。

4枚差しがうまくいっていない様子なので、メモリを購入することにした。

G.Skill にした。約4万円。痛い、、、
理由は、MSI MPG Z390 GAMEING PLUSのサポート情報で4枚にチェックが入っていたからである。

品物が届いて、差し替えて、そのまま起動し、動画エンコードしたら、BSOD、、、、

なぜだーー!

とわめいても進まない。

ここは一旦CMOSクリアしてみよう。

その後、X.M.Pを有効にして、CPUのOCはせずに、起動。
動画エンコードしたら、正常終了した。

もしかしたら、メモリ交換せずとも、CMOSクリアしたら直ったのではないかと思うくらいである。

上記エラーが出たら、

・CMOSクリア
・メモリ抜き差し
・X.M.Pなしで動作するかどうか
・X.M.Pありで動作するかどうか
・OCしても動くかどうか

の順でやればいいのではと推測がたつ。

これが正常かは分からないけど、うちの環境ではこれで動画エンコードが1回しか行っていないけど正常に終わった。

何回か試してみようと思う。

メールサーバがブラックリストに載るようになった

最近載るようになってしまった。

 

 

 

Note: 111.108.30.8 appeared to be suspicious because it was using the following name to identify itself during email connections (port 25) via the HELO/EHLO smtp commands: “.”.

注:111.108.30.8は、HELO / EHLO smtpコマンドを介した電子メール接続(ポート25)中に次の名前を使用して自分自身を識別するため、疑わしいようです: “。”。

The observed forged HELO identification was nwut.bddk.wtbo.lpnffqemnrjzu.com.
観測された偽造HELO識別は、nwut.bddk.wtbo.lpnffqemnrjzu.comでした。

両方ともhelo関連ですね。
リレーやそれ以外のものはすべて対処できているので、heloが標的にされたのだと思いますが。

helo偽装をしているというと、 . がよく分からない。
でもhelo偽装だけでも解決できればおそらくいけそうな感じですね。

解決策分かる方教えてもらえるとうれしいです。

header_checksで蹴るしかないのかなぁ。いい案が思いつかない。

IRQL_NOT_LESS_OR_EQUAL SYSTEM_SERVICE_EXCEPTION BSOD & GPU 真っ黒、ファン高速回転

環境:
OS:windows 10
CPU:i9 9900k
GPU:2080ti
MEM:64GB メモリ(4スロット)
M/B:MSI Z390 GAMING PLUS
モニター:ViewSonic 4K(HDRなどには非対応)

BIOS設定:
ホットプラグ有効
CPU OC:49
MEM:XMP
他ほぼ自動設定

動画エンコード中に表題のIRQL_NOT_LESS_OR_EQUAL or SYSTEM_SERVICE_EXCEPTIONが起きるようになった。
そのままBSOD。対象はntoskrnl.exe。

これは大体メモリ関連で起きることが多い。

DDR4-3000(XMP)を使っているが、一旦DDR4-2133に落としてみた。
動画エンコードで3回くらい同じものをx264で走らせると3回目で同じくBSOD。
クロック下げだけではダメか。
割り込み関連がうまくいっていないため起きているとするならばメモリのタイミングを遅くすれば対応できるのはないかと考えて、
15-15-15-35だった設定をBIOS上で、20-20-20-40にし、メモリはDDR4-2666にしてみた。
その後3回ほど動画エンコードを行ったが落ちなかった。
OCメモリあるあるなところはあると思う。
おそらくこれで解決していると思う。
次メモリを買うとしたらもう少しOCしているものを買うかなぁってところ。
64GBなので、3万以上するのは痛いがどうしようか考えている。

 

次の問題、GPU 真っ黒、ファン高速回転というもの。
これはGPUの熱暴走だと考えられる。(購入当初は起きなかったため、内部部品がダメージを負っている可能性あり)
2080tiを使っているが、72℃超えたあたりくらいで大抵起きる。
そのため、afterburnerを使用し、リミットを85%くらいにし、ファン設定をいじった。
元々OCのGPUということもあり、85%まで下げてもそこまで数値に響くことはなかった。
FF15ベンチで68℃が最高。1920×1080の標準で15000前後のスコア。
特に不便ではないかなと考えている。
こっちは買い換えは厳しい。15万以上するからが原因なんだが、、、
3080台の発表があったので、発売され値段が落ち着いて、余裕があれば買う予定ではいるけども、、、

今のところこんな感じ。
一応やったことといったら、
・DISMでイメージ修復
・SFCコマンドでシステム修復
・CHKDSKにてファイルのチェック
・BIOSバージョン下げ(最新だったため、下げてみた)
・CMOSクリア
どれも効果なし。