PSF

スパム対策回避のためhttp://を-に置き換えています

概要

PSF(PlayStation Sound Format)は広義のPSF(Portable Sound Format)に属するPlayStationのサウンドフォーマットである。

仕様

広義のPSFの仕様はhttps://web.archive.org/web/20140125155137/http://wiki.neillcorlett.com/PSFFormatを参照。
サウンドデータの仕様はupload40000003089.zipのseqfmt.txtを参照。

作成方法

PSF Labを使用した方法

PSF Lab
https://web.archive.org/web/20130616065744/http://wiki.neillcorlett.com/PSFLab
GUI上でR3000アセンブリのデバッグ、編集などが行える。

サウンドドライバの準備

方法1:アセンブリを解析してドライバを作成する
PSF1 Mini-HowTo
https://web.archive.org/web/20110714162714/http://wiki.neillcorlett.com/PSF1MiniHowTo
someone42氏作成のリッピングガイド
https://www.angelfire.com/tx5/someone42/psfrip.txt
loveemu氏のリッピングガイド
https://loveemu.hatenablog.com/entry/20140101/Generic_PSF_Ripping_Strategy

解析にはディスアセンブラであるIDA professional(https://www.hex-rays.com/products/ida/)を使用する。(ただpro版はライセンス料が高額(1129 USD / 869 EUR.))
またはデバッグ機能のついたエミュレータであるno$psx(https://problemkaputt.de/psx.htm)を使用する。

方法2:汎用ドライバを使用する
davironica's ezpsf driver
https://web.archive.org/web/20060501140515/http://oddigytitanium.com:80/psf/epsfdv013.rar
davironica's EZPSF PSF driver and tutorial をダウンロード(ver1.0.3)
2chの某スレにはver1.0.4を使ったデータからひっぺがしたものがあります.
ver1.0.4はこの下の方にあるupload40000003958.zipがそれです。

CaitSith2/Mark Grass' Generic PSF Driver
 -markgrass.the-horror.com/PSF1/
 -markgrass.the-horror.com/Guides/
PSF.TXTに作成方法の英文、PSF_DRIVER.rarにドライバや作成で使うツールがあります。
MG_DRIVER.ZIP  MG_DRIVER_V420.zip MarkGrass PSF Driver v4_2_2.7z

上記の汎用ドライバを使用した具体的作成手順

標準形式(SEQ, VH, VB)の場合
122@スレ4氏が公開したdavironica's EZPSF PSF driver(1.0.3)を使用した方法
upload40000003089.zipのpsfrip.txtを参照。

565@スレ4氏が公開したDavironica's generic driver 1.0.4を使用した方法
upload40000003958.zipのezpsf104.txtを参照。

___@スレ_氏が公開したMark Grass' Generic PSF Driverを使用した方法
MG_DRIVER.ZIPのMG_DRIVER.txtを参照。

Sony独自形式(SSsq, SShd, VB)の場合
___@スレ_氏が公開したMatrixz's Wild Arms 2 driverを使用した方法
wa2driver(Fix).zipのwa2driver.txtを参照。

Konami独自形式(KCETSeq, VH, VB)の場合
___@スレ_氏が公開したNeill Corlett. Gensou Suikoden 2 Driverを使用した方法
suikoden2driver_ver2.zipのsuikoden2.txtを参照。

ツール

シーケンス・リズムデータ解析
PGconv
 https://web.archive.org/web/20071216040710/http://www.tukinami.com/
 CD-ROMのファイルから内蔵音源データを探し出しindex付けしてくれます。

clg2csv.exe
 2ch某スレで提供された、PGconvの解析データclgをcsvに変換するソフト。
 これがあると段違いに作成速度が速くなります。

clg2split.exe
 2ch某スレで提供された、PGconv解析データclgを参照し、CD-ROMの生データ
 の該当部分を切り出して単体ファイル化してくれるソフト。

※clg2csv, clg2splitは無くても困りませんが、あると作業がやりやすくなります。

タグ付け

VGMToolboxを使用した方法(スレ11-14氏)

VGMToolbox
http://sourceforge.net/projects/vgmtoolbox/
このツールには汎用ドライバ、タグ打ち機能が含まれており、PSFLabを使用した方法より、多少簡単に作成できる(アドレスやオフセットを毎回打ち込む必要がないため)。またこのツールではオリジナルドライバ(標準のSeq,vh,vbのみ)の作成もできる。(ただ、汎用ドライバ、タグ打ち機能、サウンドルーチンのアドレス検出はexternalフォルダ内の既存のツールを使用しているだけ)

オリジナルドライバの作成方法

準備
ゲームディスク内に存在するEXEファイル(SLPS_XXX.XX、SLPM_XXX.XX等)を作業フォルダにコピーする。
PSF-o-Cycleを入手する。https://web.archive.org/web/20140121201826/http://www.neillcorlett.com/psfocycle/
psxdevよりライブラリを入手する。http://www.psxdev.net/downloads.html(Runtime Library 4.6でOK)
展開してBINフォルダへ環境変数のPATHを設定する。
PsyQ SDK must be installed.
Be sure to add your PSYQ and PSYQ\\BIN folders to your PATH environment variable.
Also please create a PSYQ_PATH environment variable pointing to the top level PSYQ folder.

ドライバ作成手順
1.VGMToolboxを起動し、VGMToolBox-Misc.Tools-xSF Tools-PSF-PSF Stub Creatorまで移動する。
2.Setting/Offsetsは基本弄らなくてOK。
Error received: Text Area + Size is greater than 0x80100000, this is not supported.
 もし上記エラーが出た場合はAllow drivers with load addressにチェックを入れ、Load Defaultsを押し、PSFDRV_LOADの値を、「実際の値は ... です。」の値に書き換え、PSFDRV_PARAMの値をPSFDRV_LOADとPSFDRV_SIZEを足した値に書き換える。MY_SEQ_SIZE、MY_VH_SIZE、MY_VB_SIZEは用意したSeq、vh、vbのサイズがデフォルトの値を超える場合は適宜調整を。
3.OptionsのDriver Text Stringはゲーム名でも入れておけばよい。Add reverb...はリバーブ設定したい場合はチェックする。
4.Drop Files HereのスペースにEXEファイル(SLPS_XXX.XX、SLPM_XXX.XX等)をドラッグ&ドロップする。
5.成功すれば、[EXEファイル名].stub.c、[EXEファイル名].stub.binが作成される。
 .binができない場合は、まずパスが通っているか確認。以下のようなシンボルが定義されていないエラーが出た場合は、このツールでオリジナルドライバを作るのは難しい。(ソニー提供のサウンドライブラリを使用していないため。ツールの不具合で解析できていない可能性もあるが。)
PSFDRV.OBJ : Error : Symbol 'SSSEQOPEN' not defined
PSFDRV.OBJ : Error : Symbol 'SSSEQPLAY' not defined
6.PSF-o-Cycleを起動し、Build Driver...を押す。
7.Stub file:に5.で作成したstub.binを指定する。
8.Original game EXE:にEXEファイル(SLPS_XXX.XX、SLPM_XXX.XX等)を指定する。
9.Build...を押し、ドライバ名を指定して作成する。
 ここまでの工程でエントリポイントが変更され、サウンドルーチンのみが駆動するEXEファイル(ドライバ)が出来上がる。

PSF作成方法

1.VGMToolboxを起動し、VGMToolBox-Misc.Tools-xSF Tools-PSFまで移動する。
2.PSF Data Finderでseq, vh, vbを得る。
3.PSF MakerでPresetを選択する
 汎用ドライバを使用する場合は、Davironica's Generic Driver または Mark Grass Generic Driver を選ぶ
 オリジナルドライバを使用する場合は、PSF Stub Builder Defaultsを選び、Driver Pathに上記で作成したEXEファイルを指定する。
4.Source Filesでseq, vh, vbのあるディレクトリを選択する。
5.Output Folderで出力先ディレクトリを選択する。
6.必要に応じて、Try all possible...にチェックを入れる。
7.Make PSFsを押す。
8.作成できたら、PSF Timerで時間設定、xSF Tag Editorでタグ付けを行う。

ツール

2.PSF Data Finderでseq, vh, vbを得る。
と書いたが、特にvb切り出しの精度がいまいちなので、もうちょい正確に切り出すことを目指してbin2seq というツールを作った。
20141003更新 bin2seq
Visual Studio 2013 の Visual C++ 再頒布可能パッケージが必要

使用法
readme.txtより
Start cmd.exe & run exe. for more information, run in no arg

使用例
サルゲッチュの内蔵音源を切り出す。(ver. 20120604)
C:\>bin2seq.exe -a C:\KKIIDDZZ.DAT 0 1024
サルゲッチュの内蔵音源を切り出す。(ver. 20141003)
C:\>bin2seq.exe rip C:\KKIIDDZZ.DAT 0 1024

第二引数:解析したいファイル名を絶対パスで指定。(パスにスペースが含まれる場合はパスを""で囲むことを忘れないように)
第三引数:解析したいファイルをファイルのどの位置から解析するか16進数で指定。(0で特に問題ないが、解析に時間がかかる場合は、バイナリエディタを使用して該当ファイルを開き、最初に現れるシーケンスもしくはヘッダのアドレス値を指定すれば多少速くなる。)
第四引数:指定した数だけseq,vhまたはsssq,sshdを探す。(メモリの許す限り多めに指定して特に問題ない)

ついでにsonyのゲームで使われているSSsqをmidに変換するものも作った。
(pgconvでも変換できるけどcmdで気軽に使いたくて) Sssq2mid
ブレイヴフェンサー 武蔵伝のsqvをmidiに変換 Sqv2mid

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2018年01月26日 11:46