トップ > 日記らしきもの
------------
日記らしきもの(超不定期更新)

ゲーム解析関係や、トップに書くほどでもない近況などを書いていく予定…
飽きたりして年単位で更新しなくなる可能性もあります。

・解析関連に関しては細かく説明することもありますが、
 大抵は「〇〇を解析した」ということやその感想程度の内容になると思います。
 前提となる情報を詳しく書いておらず、意味不明に見える場合もあると思います。
 また解析したものについて、必ずしも結果の公開やツール作成等をする訳ではありません。
・内容の正確性は保証しません。詳しく調査せずに勘違いしている可能性もあります。
・文中の用語・名称などは「私が勝手にそう呼んでいる」だけで正式な呼び方ではない場合があります。
・日付は「記載日」です。ページの更新日や実施日と一致しない場合があります。
 (基本リアルタイムではありません、ある程度溜まるか、他ページの更新と
  同時になることが多いかと思います)


[過去ログ]
 2024年
 2023年
 〜2022年

[解析情報リンク]
 電車でGO! FINAL PS2版 ダイヤ・車両関連情報(判明している分だけ)



------------
2025/05/31
  掲示板でps2_adpcmconvへの対応依頼があったSIRENですが、
  持ってないソフトは出来ない…と思いつつも結局は気になるので買ってきました。

  ファイル構成ですが、SIREN.000〜SIREN.008にメインのデータが512MB($20000000)単位に分割されて格納されている様です。
  この時点で「次のファイルにデータがまたがっている場合がある」場合の対応が必要になる可能性が出てきました。
  SIREN.TBLが格納情報っぽいですが、これはそのまま情報が格納されているのではなく、
  一旦全データをビット反転する必要があります。(解析対策?)
  何でビット反転だと気づいたのか?というと、この時は「これまでの経験から、何となく」ではあるのですが
  根拠としては32bit値(4byte値)の連続としてみた場合、最上位byte(4byte目)にFFが多く、
  ここに入るであろう、開始位置やサイズがそんな大きな値になる訳がなく、
  (ビットを反転した)00であるほうが自然なので、難読化の為?にビット反転させているのではないかと思いました。

  ビット反転させると、以下のような構造になっていました。
   $00 4byte 'SDT4' 53 44 54 34
   $04 4byte 0F 02 00 00 (=020F)  データ数
   $08 4byte B0 41 00 00 (=41B0)  TBLファイル自体のサイズ
   $0C 4byte 9E A6 79 E7      不明
   $10 4byte 20 00 00 00      ファイル情報開始位置?
   $14 4byte D4 18 00 00 (=$18D4) ファイル名群開始位置

   $20- 4byte*3*n データ開始位置→データサイズ→ファイル名位置の順
           これがファイル数分連続して格納されている

   データ開始位置は$15F90=SIREN.000の先頭となる
   以降、値が1増えるごとに開始位置が$800ずつ後ろになり、
   SIREN.000の終端のあとはSIREN.001の先頭、以降同様にSIREN.002〜SIREN.008と続く
   おそらくここの値はセクタ番号と思われる
   (ISOイメージから読みだす場合、単純にここの値*$800の位置から読み出せば良い)
   ファイル名位置は$14のファイル名群開始位置(=$18D4)が起点(=00)となる

  とりあえずこの情報を基にとりあえずファイル単位で切り出してみました。
  前述の「データがSIREN.000〜008の各ファイルをまたぐ時の処理」を作るのが面倒だったので
  イメージ化したISOファイルから読み込むことにしました。
  ムービーはmovieフォルダ、音声はstrフォルダに入っていたのですが、strフォルダの音声が曲者で、
  恐らくステージ単位で使う音声を1つのファイルにまとめてあるのですが
  ファイル内に格納情報的なものは無く、プログラムデータからも見つけることはできませんでした。
  この為、無音を検出して区切ってリストを出力する形にしました。
  さらに大抵の音声はモノラルですが、各ファイルの先頭の方にあるイベント音声と
  途中にあるbgm(といっていいのものかは分からないですが)はステレオなのと、
  bgmは終端ギリギリまで音が続くので無音で区切る処理がうまくいかず、
  ほぼ確実に次の音声が入ってしまうので、この辺りはリストを手動で修正する必要があります。
  (現在、ここの作業をやっている途中です)

  そして内部でのファイル単位で調査してきたので、この結果をSIREN.000〜008の各ファイルに対応した
  アドレスに戻さないといけない&前述のファイルをまたぐ処理を作らないといけないという作業が残っています。
  なので完成にはもう少し時間が掛かりそうです。6月中には公開できれば良いですが…
トップページに戻る