「今更これ需要あんの??」ってツールを作ったので紹介します。


作る発端になったのはCFWを導入したPSP-3000で、
アイマスSPをプレイしていたのですが、このゲーム、かなり昔のタイトルですが
出始めの頃は2chとかで解析とかが行われていたみたいで。
それで自分が今更何を思ったのか、「面白そうだし解析してみるか」って感じで
PSP FilerでUMDからisoを吸い出してPCに移して解析しようとしたんですよ。
ところが、データファイルは.binで暗号化されてて普通の方法では
見ることすらできませんでした。

後々ggって調べてみると、imasSP データ抽出ツール なるものがあったので
ダウンロードしようとしたんですが。。。

リンク切れじゃねーか!!

って感じでダウンロードできませんでした。
本当に、どこを探してもリンク切れでした。
(2009年だからリンク切れてるのも当たり前か…ってなりましたがw)
そもそもですが、
今になってこんな古いゲームを解析しようとしてるのは自分だけじゃないか??(今更)

とりあえず、今更感はありますがw
どうしても解析したかったんですよね、なので自分でツールを自作しました。

Visual Studio 2019で作成・コンパイルしたので
実行にはVS2019ランタイムが必要になると思います。
後は.plスクリプトを使用するので、ActivePerlのインストールが必要です。

任意のYUMFILE_*.binを展開出来るほか、それの再圧縮も出来るようにしました。

というかSPのデータってLZSSで圧縮されてるんですよね。ggる前までは知らなかった。

それで、圧縮データをツールで展開すると、フォルダが沢山出てくるんですが、一部ダミーデータなんかも混ざってたりします。

解析して自分が何をしたかったのかというと、ゲーム内で使われている音声データを取り出したかったわけなんですよね。

音声データはどこにあるのかというと、at3というフォルダの中と、unkというフォルダの中にあります。

at3のフォルダの中にある拡張子が.at3のファイルは曲のデータで、普通には再生できませんが、foobar2000などを使用すれば再生可能です。

一方、unkフォルダの中にある拡張子が.unkのファイルは、声のデータが入っていますが、foobar2000でも再生は不可です。

これはなぜかと言うと、声のデータに関してはITU G.722.1 annex Cというコーデックでエンコードされている為です。
別名Polycom Siren 14コーデックとも言います。
(内部的にはADPCMを使用しているようだから普通にいけるんじゃないかと思ったけど専用ツールを作らないと無理だった)
しかもSPに使われてるのは、ヘッダーレス形式(RAW)でG.722.1にエンコードされたものを使用しています。
その為、foobar2000でも読み込みが不可能という訳です。

曲のデータはSonyが扱っているATRAC3+というコーデックでエンコードされている為、デコードが容易です。
(at3→wavへの変換ツールはggれば見つかるのでここでの説明は割愛)

Polycom Siren 14のヘッダーレスは結構厄介なエンコードの仕方で、現状はコンパイルされたデコードツールが存在しません。
以前はPolycom社のSiren 14デコーダーがありましたが、今現在はなくなっています。

その為、unkをデコードしてwaveサウンドにするツールを作りました。

こちらもVisual Studio 2019で作成・コンパイルしたので
実行にはVS2019ランタイムが必要になると思います。

このツールでunkファイルをデコードして、声のデータを取り出すことができます。

まぁそんなかんじです。

要するにただの自己満で作ったツールです。

もしツールに関してバグ・不具合なんかがあったら教えてください。
(今更このようなツールが需要あるのかは不明だけど。)

ツールのダウンロードはこちらから行えます。

ちなみに余談ですが、このツールを使用すれば色々作れます。

↓例えばこんなことができます。

at3形式の曲ファイルをwaveに変換してaudacityなどで声のデータと組み合わせるとソロで歌ってる風な楽曲なんかも作れたりする.
          
          
   
    
   


22件のコメント

ny · 2023年11月12日 7:12 PM

ソフトのisoからat3ファイルとunkファイルを抜き出したいと思い、ツールのダウンロードは出来たのですが、プログラミングや”Visual Studio C++ 2019″の使い方が分からなくて、どうやってツールを起動させればいいのか分かりません。教えていただけると幸いです。
ちなみに抜き出したいソフトはSPと2とワンフォーオールとプラチナスターズとステラステージです。

    管理人 · 2023年11月12日 8:50 PM

    どのページからツールをダウンロードしましたか?
    また「どうやってツールを起動させればいいのか分かりません」との事ですが、エラーが出て起動できないという意味で合ってますか?

ny · 2023年11月12日 9:38 PM

“ツールのダウンロードはこちらから行えます。”というところからダウンロードできるページに移り、ダウンロードしました。
ダウンロードしたのは、
アイマスSP : unkTool Reloaded (G.722.1 デコード・エンコードツール)
アイマス2 : nub2ext.exe (unb展開ツール)
アイマスOFA : nus3ext (NUS3展開ツール)
その他ツールから、ATRACTool (SONY ATRAC エンコード・デコードツール)
この4つをダウンロードしました。
エラーは起きてません。
“unkTool Reloaded”と”ATRACTool”は問題なく起動できるのですが、”nub2ext.exe”と”NUS3ext”はデスクトップ画面に移動させてままで何もしてません。
“Visual Studio C++2019″のソフトを使って起動させるのでしょうか?

    管理人 · 2023年11月13日 12:38 AM

    unktool reloadedは現在は開発終了しているのでGitHubに公開しているものをダウンロードして使用してください。
    このツールは、G.722.1,nub,nus3等全てのファイルのデコードに対応しています。
    また、ATRACToolに関しても、そこにある物は開発終了しているためここからダウンロードしてください。
    ちなみにnub2ext及びnus3extはコマンドラインツールであるため、コマンドプロンプトでコマンドを打って使用する流れになります。
    “Visual Studio C++ 2019″はあくまでもプログラム開発に使用するIDEの為、貴方がソースコードを弄ってプログラムを改変したい、という場合でない限りはインストールする必要はありません。

ny · 2023年11月13日 6:51 AM

分かりました。
基本的に”Visual Studio C++ 2019″を使う必要はないということですね。ちなみにコマンドラインツールの方は、打って使用する流れになるということは何か入力しないとデータは取り出せないということでしょうか?
重ね重ね申し訳ありません。

    管理人 · 2023年11月19日 7:39 PM

    コマンドラインツールはexeに同封のreadmeファイルに説明が書いてあるはずですが、nubやnus3をexeにドラッグアンドドロップするだけで展開可能です。
    このツールは古いので、全ての機能を統合したPolyToolを使用するのをおすすめします。
    >>「”ActivePerl”または”Strawberry Peal”をインストールしないと実行できません。」と書かれていますが、
    それがないと実行できないのでしょうか?>>実行できません。PCにActivePerlもしくはStrawberry Perlのどちらかをインストールしてください。

ny · 2023年11月13日 9:35 PM

GitHubを開いてみました。
ATRACToolの方はバージョン1.29(20231112)をダウンロードしました。

unkToolの方はポリツールというものをダウンロードすればよろしいでしょうか?
また、「”ActivePerl”または”Strawberry Peal”をインストールしないと実行できません。」と書かれていますが、
それがないと実行できないのでしょうか?

ny · 2023年11月26日 6:20 PM

GitHubからPolyToolをダウンロードしました。
“バージョン1.0(2021.0405)”をダウンロードしたのですが、現在の最新版はこちらでよろしかったでしょうか?

それからアプリを開いて、SPから吸い出したYUMFIlEを”YUMTool Rel (build: 0.1.2220.113-Beta)”を使ってアーカイブ展開してみたのですが、最新版かどうか分からないということもあって、ディレクトリの削除に時間がかかりすぎてなかなか展開まで進みませんでした。
こちらも最新のバージョンでよろしかったでしょうか?

    管理人 · 2023年11月26日 9:22 PM

    GitHubにあるものは基本的にLatestと書かれているものについては現時点での最新版です。
    アイマス関係のツール(PolyToolやYUMTool等)に関しては更新を頻繁に行っていません。
    ゲームデータを弄る系のツールはごく一部の人にしか需要がないツールの為、このような判断をしております。
    ちなみに、これらのツールはあくまでも個人が趣味で開発した物を善意で公開しています。仮に当該ツールを使用し、ツールの不具合が起きたり、使用したユーザーに不利益が出た場合でも、当管理人は一切の責任を負いません。
    ツールに関しての不具合がある場合、GitHubのIssue、またはウェブサイトのお問い合わせフォームから連絡してください。
    連絡をいただければ確実に修正できるという保証はありませんが、できる限りは対処します。(エラー画面の写真、スクリーンショット、またはエラーログを添付していただければ尚助かります)

ny · 2023年11月26日 10:35 PM

分かりました。
現時点ではエラーなどは発生しておりませんので大丈夫です。こちらでも出来る限りでやってみたいと思います。

ny · 2024年4月1日 10:04 PM

お久しぶりです。
久々にアイドルマスターSPのYUMFILE_*.BINの展開を試みてみました。
以前コメントした時はエラーは発生せず、ただ時間がかかり過ぎて展開まで進まなかったのですが、展開を開始して数分経ったら「予期せぬエラーが発生しました。YUMFILE_1.BINの展開に失敗しました。」というエラーメッセージが表示してしまいました。その後諦めず何度も試みましたが、アーカイブ展開のボタンをクリックしても前述のエラーメッセージが5分足らずで表示するようになってしまいます。

    管理人 · 2024年4月2日 6:47 PM

    使用しているPerlのバージョンは何ですか?
    なお、MSYS2やCygwinなどのPerlは使用できません。ActivePerlかStrawberryPerlを使用してください。
    それでエラーが出る場合はPerlが競合している可能性があるので、コマンドプロンプトでget-command perlで出た結果を教えてください。

ny · 2024年4月2日 8:27 PM

StrawberryPerlを使用しています。ただ、コマンドプロンプトでget-commandperlで出た結果というのがよく分からなくて、どうやればいいのでしょうか?やり方を教えていただけたら幸いです。

    管理人 · 2024年4月4日 8:23 PM

    コマンドプロンプトの開き方は分かりますよね?
    開き方が分からないのであれば、ググってください。
    コマンドプロンプトを開いて、そこにpowershell get-command perlと入力してエンターを押します。
    以下のように出るはずです。
    CommandType Name Version Source
    ----------- ---- ------- ------
    Application perl.exe 5.32.1.1 c:\strawberry\perl\bin\perl.exe

ny · 2024年4月4日 10:52 PM

コマンドプロンプトに入力しましたので、以下の表記をそのままペーストします。

CommandType Name Version Source
—————– ——- ——– ——–
Application perl.exe 5.38.2.2 C:\Strawberry\perl\bin\perl.exe

    管理人 · 2024年4月9日 7:22 PM

    確認が遅れました。申し訳ありません。
    実行結果を見る限りでは問題はなさそうですね。
    アプリケーション本体と、YUMFILE_*.BINを置いている場所はどこになりますか?
    管理者権限が必要なディレクトリに置いてある場合、展開に失敗する可能性があります。
    ちなみにこちらでデバッグしたところ、他の不具合も見受けられたので現在、不具合修正版を開発しているので完成したらGitHubに上げる予定です。

ny · 2024年4月9日 9:34 PM

アプリケーション本体はダウンロードした後にWindowsのタスクバーにピン留めした状態にしてあります。YUMFILE_*.BINのは、”パーフェクトサン”・”ワンダリングスター”・”ミッシングムーン”の3つを新規フォルダにまとめて入れてデスクトップに配置してあります。

    管理人 · 2024年4月14日 9:18 PM

    ダウンロードした場所にアプリ本体がそのままあって、それをピン留めしているという認識で合ってますか?
    YUMFILE_*.BINの場所は問題ないと思います。
    こちらの環境では、YUMFILE_*.BINを展開中は問題ないですが、プログレスバーが最後に到達した時点でエラーが表示されました。
    win10のリリース間もない時代にプログラミングしたアプリケーションなので、恐らくアプリケーション側のバグだと思われます。
    修正版のリリースをお待ちください。

ny · 2024年4月15日 10:57 PM

はい。正確にはダウンロードした場所からアプリケーションを解凍してタスクバーにピン留めしました。

それから、もし管理人様が過去に実行なさったことがあれば、以下の質問にお答えしていただけたら幸いです。

Q1. ワンフォーオールのDLCのデータが格納されている”_dlc.arc.edatファイル”から楽曲のアカペラやジャケットファイルを抽出する方法 (初期収録曲は抽出済み)

Q2. “プラチナスターズ”と”ステラステージ”からQ1と同様に楽曲のアカペラやジャケットファイルを抽出する方法 (PS4本体・ゲームソフト両方とも未購入)

Q3. 管理人様のGithubのリポジトリにある”idx2dec”のアプリケーションを構築する手順

質問攻めになってしまい申し訳ありません。お答え出来る範囲で構いませんのでよろしくお願い致します。

    管理人 · 2024年5月1日 9:08 PM

    返信が大変遅れました。申し訳ありません。

    まずQ1については、アーカイブを展開したいという意味であれば海外製のアプリケーションがあるのでそれを使用すれば展開自体は可能かと。(ゲームのデータを解析することがグレーゾーンなので自分で調べてください)
    “_dlc.arc.edatファイル”から楽曲のアカペラやジャケットファイルを抽出する方法”と仰っておりますが、EDATファイルは通常NPDRMに関わるファイル(PS3上で動くコンテンツの鍵のようなもの)なので、通常EDATは数十キロバイト程度しかないはずですが…
    データのアーカイブファイルはEDAT以外の拡張子で、数百メガバイトはあるはずです。
    EDATを暗号化 or 複合化したいというのであればまた話は変わってきます。

    Q2については本体・ソフトを未購入との事なのでまず本体とソフトがなければ話を進められませんね。

    Q3はVisual StudioとC#を使ってビルド可能です
    ビルドの方法は探せばいくらでもあるので調べてください。

ny · 2024年5月1日 11:14 PM

ワンフォーオールの初期収録曲は以下のURL先のアプリケーションを使って抽出しました。
https://github.com/faraplay/ImasArchiveS
リードミーにも「このアプリケーションにはDLCが含まれます(ただし、別のプログラムを使用して、最初にそれらを復号化する必要があります)。」と書かれていますので引き続きこのアプリケーションを使ってみようと思いますが、”別のプログラム”というのが分からなくてedatファイルが鍵になるということはそれが必要になるという事でしょうか?

    管理人 · 2024年5月1日 11:45 PM

    上記URLのアプリケーションをそもそも使用したことがないので詳細はわかりかねます。
    OFAの物を展開する方法は確立していますが、私が使用しているのは自作(GitHubにも公開してない)プライベートアプリなので。

    あと、あくまでもこの記事はSPの展開ツールを作ったよってだけなので、SPの展開ツールに関しての事ならお答えしますが、他のツールの質問についてはここのコメント欄ではご遠慮ください。
    これ以降、質問があるのであればX (旧Twitter)のDM、もしくは、お問い合わせページからお願いします。

コメントを残す

アバタープレースホルダー

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。
(スパム対策)