トップ > 日記らしきもの
 

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

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

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


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

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



------------
2026/02/15
  山陽新幹線編の編成と性能変更に関するアドレスを並べておきます。
  []内は該当するメモリアドレスです。(PS2通常版/Win廉価版(公式の修正パッチ適用後)の順)
  全て2byte値です。性能の後ろの???となっている部分はどの部分に影響するかはよく分かりませんが、
  車両毎に対応した値になっているっぽいので一応載せてあります。
                                (↓修正パッチ適用後)
                            PS2通常版/Win廉価版 編成 マスコン画像      性能 ???
   00 : こだま563号 レールスター    広島 →博多  [278E94/4CE49C] 0020 0004  / [224736/51DB4E] 000E 0008 FFFF 
   01 : ひかり 51号 0系R+Rウエスト&シャトル   新大阪→博多  [278EB4/4CE4C0] 000E 0000  / [2249A6/51DDBE] 0005 0001 0000 
   02 : のぞみ501号 500系Wのぞみ    新大阪→博多  [278ED4/4CE4E4] 001C 0003  / [224C16/51E02E] 000C 0006 FFFF 
   03 : こだま491号 100系Gこだま    新大阪→広島  [278EF4/4CE508] 0014 0001  / [224E86/51E29E] 0008 0003 FFFF 
   04 : のぞみ 33号 300系Fのぞみ    新大阪→博多  [278F14/4CE52C] 001A 0002  / [2250F6/51E50E] 000B 0005 FFFF 
   05 : ひかり359号 ひかりレールスター    新大阪→博多  [278F34/4CE550] 0020 0004  / [225366/51E77E] 000E 0008 FFFF 
   06 : ひかり185号 100系Gひかり    新大阪→博多  [278F54/4CE574] 0014 0001  / [2255D6/51E9EE] 0008 0003 FFFF 
   07 : ひかり107号  0系Nひかり    新大阪→博多  [278F74/4CE598] 0000 0000  / [225846/51EC5E] 0000 0000 FFFF 
   08 : こだま625号  0系WRこだま    姫路 →広島  [278F94/4CE5BC] 0006 0000  / [225AB6/51EECE] 0003 0001 FFFF 
   09 : こだま579号  0系Qこだま    広島 →博多南 [278FB4/4CE5E0] 0010 0000  / [225D26/51F13E] 0006 0000 FFFF 
   0A : ひかり391号 500系Wひかり    新大阪→博多  [278FD4/4CE604] 001C 0003  / [225F96/51F3AE] 000C 0006 FFFF 
   0B : ひかり151号 300系Fひかり    新大阪→岡山  [278FF4/4CE628] 001A 0002  / [226206/51F61E] 000B 0005 FFFF 
   0C : ひかり141号  0系Skウエスト   新大阪→博多  [279014/4CE64C] 002A 0000  / [226476/51F88E] 0002 0001 FFFF 
   0D : ひかり 47号 100系Vグランド   新大阪→博多  [279034/4CE670] 0016 0001  / [2266E6/51FAFE] 0009 0004 FFFF 
   0E : ひかり381号 ひかりレールスター 新大阪→博多  [279054/4CE694] 0020 0004  / [226956/51FD6E] 000E 0008 FFFF 

   0F : こだま602号 300系Fこだま    三原 →新大阪 [279074/4CE6B8] 001B 0002  / [2222A6/51B6BE] 000B 0005 FFFF 
   10 : のぞみ  4号 300系Fのぞみ    広島 →新大阪 [279094/4CE6DC] 001B 0002  / [222516/51B92E] 000B 0005 FFFF 
   11 : ひかり164号  0系Nひかり    広島 →新大阪 [2790B4/4CE700] 0001 0000  / [222786/51BB9E] 0000 0000 FFFF 
   12 : こだま610号  0系Rこだま    新岩国→新大阪 [2790D4/4CE724] 000D 0000  / [2229F6/51BE0E] 0004 0000 FFFF 
   13 : ひかり352号 ひかりレールスター 博多 →新大阪 [2790F4/4CE748] 0021 0004  / [222C66/51C07E] 000E 0008 FFFF 
   14 : こだま672号  0系Qこだま    博多南→小倉  [279114/4CE76C] 0011 0000  / [222ED6/51C2EE] 0006 0000 FFFF 
   15 : ひかり158号  0系Rシャトル   広島 →新大阪 [279134/4CE790] 000D 0000  / [223146/51C55E] 0004 0000 FFFF 
   16 : ひかり128号 100系Vグランド   博多 →新大阪 [279154/4CE7B4] 0017 0001  / [2233B6/51C7CE] 0009 0004 FFFF 
   17 : こだま572号 100系Pこだま    博多 →広島  [279174/4CE7D8] 0019 0001  / [223626/51CA3E] 000A 0004 FFFF 
   18 : ひかり552号  0系Skウエスト   博多 →新大阪 [279194/4CE7FC] 0005 0000  / [223896/51CCAE] 0002 0001 FFFF 
   19 : ひかり554号  0系Rファミリー  博多南→新大阪 [2791B4/4CE820] 000B 0000  / [223B06/51CF1E] 0004 0002 FFFF 
   1A : ひかり374号 ひかりレールスター 博多 →新大阪 [2791D4/4CE844] 0021 0004  / [223D76/51D18E] 000E 0008 FFFF 
   1B : こだま656号  0系Rこだま     博多南→新大阪 [2791F4/4CE868] 0009 0000  / [223FE6/51D3FE] 0004 0002 FFFF 
   1C : のぞみ 26号 500系Wのぞみ    博多 →新大阪 [279214/4CE88C] 001D 0003  / [224256/51D66E] 000C 0006 FFFF 
   1D : ひかり174号 100系Gひかり    博多 →新大阪 [279234/4CE8B0] 0015 0001  / [2244C6/51D8DE] 0008 0003 FFFF 

   1E : ダイジェスト 0系Rこだま     小倉 →博多  [279254/4CE8D4] 0008 0000  / [226BC6/51FFDE] 0004 0000 FFFF 
   1F : ダイジェスト100系Vグランドひかり 小郡 →博多  [279274/4CE8F8] 0016 0001  / [226E36/52024E] 0009 0004 FFFF 
   20 : ダイジェスト300系Fひかり     岡山 →新大阪 [279294/4CE91C] 001B 0002  / [2270A6/5204BE] 000B 0005 FFFF 
   21 : ダイジェスト500系Wのぞみ     博多 →岡山  [2792B4/4CE940] 001D 0003  / [227316/52072E] 000C 0006 FFFF 
   22 : ダイジェストひかりレールスター  新大阪→広島  [2792D4/4CE964] 0020 0004  / [227586/52099E] 000E 0008 FFFF 

   23 : フリーラン 0系 下り               [2792F4/4CE988] 0008 0000  / [2277F6/520C0E] 0004 0000 FFFF 
   24 : フリーラン 0系 上り               [279314/4CE9AC] 0009 0000  / [2277F6/520C0E] 0004 0000 FFFF 
   25 : フリーラン 100系 下り              [279334/4CE9D0] 0016 0001  / [227A66/520E7E] 0009 0004 FFFF 
   26 : フリーラン 100系 上り              [279354/4CE9F4] 0017 0001  / [227A66/520E7E] 0009 0004 FFFF 
   27 : フリーラン 300系 下り              [279374/4CEA18] 001A 0002  / [227CD6/5210EE] 000B 0005 FFFF 
   28 : フリーラン 300系 上り              [279394/4CEA3C] 001B 0002  / [227CD6/5210EE] 000B 0005 FFFF 
   29 : フリーラン 500系 下り              [2793B4/4CEA60] 001C 0003  / [227F46/52135E] 000C 0006 FFFF 
   2A : フリーラン 500系 上り              [2793D4/4CEA84] 001D 0003  / [227F46/52135E] 000C 0006 FFFF 
   2B : フリーラン ひかりレールスター 下り        [2793F4/4CEAA8] 0020 0004  / [2281B6/5215CE] 000E 0008 FFFF 
   2C : フリーラン ひかりレールスター 上り        [279414/4CEACC] 0021 0004  / [2281B6/5215CE] 000E 0008 FFFF 

   2D : 入門                       [279434/4CEAF0] 0020 0004  / [228426/52183E] 000E 0008 FFFF 

  車両毎にまとめると下記のようになっているようです。
  左側に※付きのものは本編では運転できない編成のため、値は推測です。
          編成/マスコン/性能/???  ※編成は「下り(上り)」で記載
   0系N     : 00(01) 00 / 0000 0000  FFFF
  ※0系?編成  : 02(03) 00 / 0001? ※16両編成
   0系Sk    : 04(05) 00 / 0002 0001  FFFF
   Skシネマカー : 2A(2B) 00 / 0002 0001  FFFF
   0系WRウエスト: 06(07) 00 / 0003 0001  FFFF
   0系R新塗装  : 08(09) 00 / 0004 0000※FFFF ※こだま656号のみ0000ではなく0002
   Rファミリー : 0A(0B) 00 / 0004 0002  FFFF
   0系R旧塗装  : 0C(0D) 00 / 0004 0000  FFFF
   0系R+R連結  : 0E(0F) 00 / 0005 0001  0000
   0系Q      : 10(11) 00 / 0006 0000  FFFF
  ※100系X?   : 12(13) 01 / 0007?
   100系G    : 14(15) 01 / 0008 0003  FFFF
   100系V    : 16(17) 01 / 0009 0004  FFFF
   100系P    : 18(19) 01 / 000A 0004  FFFF
   300系    : 1A(1B) 02 / 000B 0005  FFFF
   500系     : 1C(1D) 03 / 000C 0006  FFFF
   ???    : 1E(1F) ?? / 000D? ※16両編成、表示不可
   レールスター : 20(21) 04 / 000E 0008  FFFF
  ※WIN350    : 22(23) ?? / 000F? ※資料館専用、運転用モデルなし
  ※922形    : 24(25) 00?/ 0010? ※資料館専用、運転用モデルなし
  ※0系?連結?  : 26(27) 00 / ????  ※6両編成、連結器あり
  ※0系R旧連結? : 28(29) 00 / ????  ※6両編成、連結器あり

  1E(1F)の編成は、レールスターのファイルが読み込まれるものの、編成中に存在しない番号が指定されていて
  正常に表示できません。恐らくはモデルデータすら収録できなかった没になった車両で、
  ダミーとしてレールスターの定義を入れてあるだけかと思われます。

  ちなみに車両性能のパラメータは後半部を中心に未使用と思われるものが多数あり、
  (ただし後ろの方で使用しているものもあり)
  パラメータ内に両数と思われるものがあるのですが(性能計算のみに使われ、変えても停止位置が変わったりはしない)
  中には10両+7両連結されているという設定のものもあります。(東北新幹線を作る予定だった残骸?)


------------
2026/02/01
  掲示板で電GO山陽新幹線編で資料館用のグラフィックを運転画面で表示できないか?という書き込みがあったので
  中々時間が取れないですがちょっとずつ調べていました。
  結論からいえばWindows版は(おそらく)可能(ただしちゃんとした確認はしていません)
  PS2版では難しそう(最低でも車両の定義部分の調査必須、それでもできるかどうかは不明、ベスト版は未調査)という状態です。

  この作品の車両モデルは資料館用(高画質)と運転画面用(低画質)で別ファイルになっています。
  Windows版だとtrain\pフォルダ内にあるものが資料館とダイジェストモードの選択画面用(ファイル名がdj_で始まるもの)
  その下のbcフォルダ内に入っているものが運転画面用と思われます。
  資料館でのモデル閲覧のみで元々運転画面用のモデルが無いものもあります。

  そもそも、低画質のデータを別に作ってある→そうせざるを得ない理由があるはずなので(メモリ不足など)
  やる前から難しいんじゃないかとは思いましたがとりあえず調査します。
  メモリ的にはWindows版の方が可能性がありそうですが、あまり解析を行っていないので
  まずはPS2版通常版で調査してみました。
  なお今回は0系などは編成違いが複数あってファイルと車両の対応が分からないので、
  レールスター編成の資料館モデルを運転画面で表示できるかを試してみる方向で進めます。

  まずは内部のファイル番号をとっかかりに調査を始めようと思います。
  (新幹線以降の電GOシリーズ(Windows版も)のデータ読込は基本的に内部ファイル番号で指定されているため)
  当サイトの画像表示ツールで車両のテクスチャを探してみると
  最初の方とFILE_1786〜以降に見つかると思います。
  前者は運転画面用、後者は資料館、ダイジェスト選択画面、在来線?(未使用、少なくともファイル番号による定義は見当たらず)
  の順で並んでいるようです。なお番号が1つ飛ばしなのはモデルデータ→テクスチャデータの順で交互に並んでいる為です。
  このFILE_****の番号から1を引いたものが内部ファイル番号になります。
  (内部ファイル番号は0から始まるがツールでは1から番号を振っているため1つずれる)
  ※なおFILE_****というのは正式なファイル名ではなく、
   他の対応作品と違ってWindows版のファイル名情報を流用できなかった
   (PS2版とファイル構成が違う)ので仮の名前としてFILE_番号の形にしています。

  レールスターのテクスチャは運転画面はFILE_0020(→$13)、資料館はFILE_1806(→$70D)なので
  ほかの用途との被りが少なそうな$70Dの方でPS2DISで16bit値検索してみます。
  すると$70C→$70Dと続くアドレス21B898のみがヒットします。$70Cはモデルデータの番号(と思われる)ので
  この辺りは車両定義に関するデータと思われます。
  この辺りのアドレスを指定している場所がないか、1つずつ32bit値検索すると
  アドレス21D0D4で21B890が指定されていました。
  この21D0D4周辺も何かのアドレス定義?が続いていますが、ファイル番号にあたる部分が近い値になっていたので
  編成別の定義アドレスのリストだったようです。
  その定義の先頭アドレスと思われる21D0B0で値検索するとアドレス28B2C0でこの値が指定されていました。
  この一つ下のアドレス28B2C4の値は265900となっていますが、こちらは運転画面用の編成の定義のようです。
  文章にするとややこしいですが、下のような構造になっていました。

   28B2C0 : 21D0B0 → 21D0B0〜資料館用の車両別の定義データのアドレスのリスト → (資料館用)各車両毎の定義データ
     28B2C4 : 265900 → 265900〜運転画面用 → (運転用)各車両毎の定義データ
        
  で、とりあえず資料館用と運転画面用のアドレスを逆にしてみました。
  資料館ではテクスチャの粗い運転画面用のものに切り替わったのでこれでいけるかと思ったのですが
  運転画面の方はNOW LOADINGの表示が出る途中でフリーズ…
  次はアドレス2658B8の運転画面用のレールスターのファイル番号を資料館用のものに書き換えてみましたが
  運転画面までは行けたのですがテクスチャや編成がおかしい状態でした。
  読み込みはされているようなので定義部分をいじればもしかしたら何とかなるのかもしれませんが、
  定義部分の構造を調べるのも面倒そうですし、調べた所でそもそも正常な表示にしようとすると
  やっぱりフリーズするのでは?という懸念もあるので厳しそうです。

  ただ、資料館で運転画面用のモデル表示はできていたので、
  もしフリーズの原因が単なるメモリ不足で、内部的には単なるモデル違いという扱いであれば
  Windows版なら表示できるかも…と思って試してみたら
  運転画面用のアドレスを資料館用に変更するだけであっさりと成功してしまいました。
  (一応、PS2版の車両定義データの値で値検索してWindows版の車両定義データを探し、
   参照元アドレスを調査するという手順だったのでPS2版の解析は無駄だったという訳ではありません)
 
  本格的シリーズ版+パッチ適用済みならメモリアドレス4EB46Cの値を0050A2C4→00507D14に変更、
  実行ファイルを直接書き換える場合、アドレスを-$400000した$EB46Cを507D14に書き換えてください。
  ただし、すれ違いなどで車両が増えたときに正常に処理されるかまでのチェックはしていません。

  
  
  編成番号の変更で運転用モデルが無いWIN350も表示されました。
  なお上記画像では、フリーランのレールスター下りの編成番号(アドレス$4CEAA8)のみを変えていますが、
  Windows版のダイヤデータはまともに調べておらず、他のダイヤや車両性能のアドレスは未調査なので
  これに関する質問は勘弁してください…
  (PS2版も含めて、ダイヤ毎のアドレスリストがあれば変更するのに楽になるのでいつかやっておきたいですが…)

  ちなみに他の作品も含めプログラム内で車両毎の定義があるため、
  車両の入れ替えをしたい場合に単純なファイル入れ替えでは正常に表示されない可能性が高いです。


------------
2026/01/06
  (2025年は項目が少なかったので本年はページを分けずに続けます)
  PS2電GOのシンボル残り作品に「oddeven」という名前のメモリ領域があり(2か所あってそのうちの片方が対象)
  フレームごとに0と1を交互に切り替わるのですが、(プロ2という旅情編ではWinSwapDBという関数内で切り替え)
  これはインターレース表示用にそのフレームで奇数ライン・偶数ラインのどちらを表示させるかというものらしく
  エミュレーター上でどちらかに固定させてみると2D画像の上下の表示ブレが解消されました。
  (※実機では奇数・偶数のどちらかのライン分しか表示されなくなる=解像度が半分になってしまうので意味がないです)
  この辺の処理の流れが共通ならば、シンボル残りでない新幹線・FINALにも応用できるかもしれません。

  ※インターレース表示についての細かい説明は省きますが、簡単に言うと画面を奇数ライン・偶数ラインに分けて
   交互に表示させることで(限られた帯域内で)解像度とフレームレートを両立させるというもので
   ブラウン管テレビでは画面がちらついてみえるというデメリットもありました。


------------
2025/12/14
  PS2「甲子園 紺碧の空」、ゲーム本編じゃなくて某音楽ユニットっぽい感じの曲が入っているという理由で購入…
  (曲自体は'99甲子園からの流用なのでそちらでも良かったのですが、他の曲も過去作の流用が中心?)
  CDのラベル情報が「2002KOS」なので正式なタイトルになるまでは過去作同様「2002甲子園」のような形の
  仮タイトルだったのでしょうか。
  SOUND/ADPCMフォルダの*.ADPファイルが音楽データで、ステレオ、48000Hz、インターリーブ$5000です。
  KOSJIKK.VGSに実況と球場アナウンスの音声がまとめて入っているのですが格納情報および再生周波数がよくわからず…


------------
2025/11/27
  ライゼリートのBGM情報についてのメモが出てきたので忘れないうちにここに書いておきます。
  変換せずに聴けるようにいつかps2_adpcmconvに対応できれば良いですが…

  [*.pcm] 16bit 24000Hz ステレオのpcm形式
  $00 ファイルサイズ-$800、PCM部分の実データサイズ?
  $04 サンプル数?(↑の値÷4になる)
  $08 ループ開始位置(サンプル単位、ループしない場合は0)
  $0c ループ終了位置

  $400〜 何かデータが入っているが不明
  $800〜 PCMデータ本体

  なお、ループ終了位置以降にはフェードアウトするデータが入っている


  [*.gfs] ギターのミニゲーム用のデータ(同じ番号の*.pcmファイルがBGM)

  $0000〜 譜面情報(下記参照)
  $1000〜 音色の格納情報(4byte単位でデータの開始位置($1800が基準(=0))がデータ数分並ぶ)
  $17F0  音色の数
  $17F4  不明(23 00 00 00)
  $17F8  不明(05 00 00 00)
  $17FC  音色部分のサイズ(=ファイルサイズ-$1800)
  $1800〜 音色データ本体(ADPCM形式) 7000.gfs〜7003.gfsは22050Hz、7004〜7005は18000Hz位?

  譜面情報
  0x08単位
  +$00 時間位置(1/30sec単位)
  +$04 種類指定($01=赤,$02=緑,$04=青 / $10=小節線(太),$20=小節線(細))
     同時押しの場合は足した値
     Ex / Ex plus譜面の場合の譜面はどういう法則で作られるのかは不明
  +$06 音色番号(小節線の場合は0xFFFF)


------------
2025/10/26
  セレクト100関係の続きです。
  今回はプログラム側の解析を行いました。
  DuckStationはCPUデバッグ機能でブレークポイントという機能があり、
  特定のアドレスへのアクセス時に一時停止が出来て
  プログラムのどの部分でアクセスしているのかが分かるので非常に助かりました。

  ※前回の記事同様、アドレスは通常版の場合です。(SuperLite1500版は未調査)

  まず、前回の方法で複数データ使用の作品で1番目のデータしか聴けない点に対応するため、
  データ開始位置の参照位置をずらしてタイトル画面で2番目のデータを読むようにしてみます。
  ※メモリカード2枚使用作品はセレクト100上では一続きにプレイできますが、
   内部的にはセーブデータが2つ分そのまま入っていて、
   ゲーム側(セレクト100側)で「1番目の1〜3面、2番目の1〜3面の全6面」の様な情報を基にして
   途中でデータを切り替えています。(EASY EDITモードはこの機能の応用?)

  各ゲームのデータおよびコメント画像はSTRDATAというファイルにまとめられています。
  プログラムファイル内(MAIN.EXE)内に各作品毎の情報があり(メモリアドレス上では$8009dc7c〜)
  STRDATA内のデータ位置を指定する形でどのデータを読み込むかが設定されていて
  2byteずつで1番目のゲームデータの位置、2番目、3番目と続いています。
  (2024/09/05の記事参照、未使用部分はデータ位置は0000になっている、
   領域的には3つ分あるが収録作品は最大でも2つまで)
  1番目の作品である影狼のデータ開始位置の情報は先頭から$3cした$8009dc88ですが、
  最上位の$800...の部分は無視して良いみたいなので、$9dc88の読み込みで一時停止するように設定してみると
  リスト上でのゲーム選択後とゲーム開始時のどちらにおいても
  80034DE0のlhu a0,0x3c(v1)(値:9464003C)の部分で開始アドレスが読み込まれていました。
  ([v1レジスタの値+$3c]のアドレスの値(2byte)をa0レジスタへ読み込むという内容の処理です)
  これの3cの部分を3eにして(9464003E)読み込み位置を+2すると参照先が1つ分後ろにずれるので
  本来1番目のデータを読む所で2番目のデータを読み込むことになります。

  エミュレーターのチート機能でパッドコードと組み合わせるなどしてON/OFFを切り替えるように
  する必要がありますが、一応この方法で2つ目のデータの曲を聴くことが可能です。
  なお上記変更をした状態では、本来2つ目のデータを読み込む場面や、元々1つのデータしか使わない作品では
  使用しない次の番号を読み込んでしまうことになりますが、未使用部分のデータ開始位置0というのは
  影狼のデータ位置と同じなので、影狼のデータが読み込まれるだけでフリーズなどは起こらない(はず)です。

  ※これを書いた後にプログラムを解析するよりもパッドコードと組み合わせて
   読み込み位置の情報を直接書き換えた方が早かったんじゃないかと気付きました…

  で、そもそもDATA SAVEで全曲出力できるようにすればいいのでは?と思い、
  前回書いたBGM設定が入るアドレス$187230、$18CC18への読み込みアクセスを調べた所、
  DATA SAVEのメモリーカードチェック前(アドレス80034CC4)とセーブ中(80035E48/80035E60)が該当しました。
  このうち、前者に当たる80034CC4は00〜0Fの値をBGM設定の各項目と比較するような内容だったので
  値が一致しているかを比較する箇所、
   80034CCC beq v0, s0, $80034ce8 (値:10500006) を常に一致=無条件ジャンプ(10000006)に変更したら
  全曲出力されるようになりました。

  となると今度はDATA SAVE不可の作品をセーブ可能に…となりますが、
  作者の方の意向で不可になっているものもあると思うので迷いましたが、
  発売から25年以上経っていることもあるのでこの欄にこっそりに書いてしまいます。
  といっても、そもそも前述の2024/09/05の記事で、ゲーム毎の情報内にセーブ不可フラグの存在を
  書いてしまっているので、これを読み込んでいる所を調査するだけですが…
  DATA SAVE可能/不可の情報は各作品の情報の先頭から+$56した所にあるので(0=可能、1=不可)
  影狼では該当アドレスが$9dc7c+$56=$9dcd2になるのでここにブレークポイントを設定します。
  すると作品一覧での決定後と作品内メニューのカーソル移動時(8001472C)に
  それぞれアドレス80014454・8001472Cにて lbu v1, $0056(v0) という形で値が読み込まれていました。
  ここでv1へ読み込まれる値が常に0(=セーブ可能)になれば良いので
   addiu v1, zero, $0000(値:24030000)などに書き換えることで全作品セーブ可能になります。
  ※複数データ使用の作品では1番目のデータしか保存できないので、2番目のデータを保存したい場合は
   前述のデータ開始位置の参照位置をずらす方法を併用してください

  最後に、セレクト100はデザエモン+より音量が大きい?せいか音割れしやすいので
  音量を下げてみようと調査してみました。
  PS2DIS付属のPS1.MAPというファイル内にPS1のSPUのアドレス情報が書かれていたので
  まずはマスターボリューム(1F801D80(左)/82(右))を下げるようにしてみたのですが、
  音量自体は下がったものの音割れは改善しないので、
  各チャンネル、今回はch1の音量(1F801C00(左)/02(右))の書き込みをチェックしてみると
   1F801C00:8004C1A8で書き込み
   1F801C02:8004C288で書き込み
  という結果になっていました。
  ここに入る値はどちらの場合もレジスタa0とa1をor演算したものになるのですが、
  a1の方に音量らしき値($0000〜$3FFF?)が入るようなので
  手前のnopになっている箇所(8004C168/8004C248)をsrl a1,a1,1(00052842)にして
  a1の値を1bit右シフト(=値を1/2)にした所、音割れが軽減されました。
  ※まだ音割れがあるという場合はsrl a1,a1,2(00052882)にするなどして更に下げてください


  なおセレクト100のBGM指定の無い未使用曲のうち、No.30 BLUE GENOCIDEの7番の曲のみ
  例外的にDATA SAVEで出力されます。
  これは内部的にはSFC版同様に6面のBGM設定の領域(ステージ曲とボス曲の2つ)が残っていて、
  DATA SAVE時の使用番号チェックでこの領域の番号も調査してしまっている為です。
  通常はサンプルデータの番号(23番・27番、SFC版DAIOH GALEと同じ)なので影響はないのですが、
  当作品のみ?7番・10番が指定されている為、7番が使用されている曲と判断されて
  出力されるようです。
  (この7番・10番という設定はデザエモン+収録のSFCコンテスト作品のHARD MACHINEの6面と一致するので
   未調査につき推測ではありますが、恐らく裏技のコンテスト作品からユーザーデータへの出力機能で
   ここの部分が7番・10番に書き換わり、かつその後のデータ削除などでも初期化されずに残った為と思われます)


------------
2025/10/14
  デザエモンKids!付属のセレクト100に関して動画を作りたかったのですが
  作成する暇がなさそうなので文章だけで…

  ・セレクト100の未使用曲に関して
   セレクト100収録作品はDATA SAVEでのメモリーカードへのコピーを行う際、
   どの場面にも使用設定がされていない曲はなぜか空白データになってしまいます。
   (4面で終了設定だが5面に設定されている、という場合は大丈夫の模様)
   未使用曲をセレクト100内で簡易的に聴く方法として、エミュレーターのチート機能などで
   ゲーム中の曲番号の設定を書き換える方法を挙げてみます。

   ※下記のアドレスは通常版の場合、SuperLite1500版は未調査

   各作品をプレイ中、アドレス$18CC18〜に曲番号の設定情報が入り、このうち$18CC24にタイトル画面の曲番号が入ります。
   (※BGM番号は内部的には0から始まるので、エディタ上での番号と1ずれるので注意してください)
   このタイトル曲の番号を未使用曲の番号に書き換え、一度ゲームを始めてポーズ→ESCAPEでタイトル画面に戻ることで
   その曲を聴くことができます。
   なお、$18CC18〜の領域の最初のほうは1面の道中→ボス→2面道中→ボス...の順になっていますが、
   この部分はゲーム開始時にもう1つの設定情報の格納領域である$187230〜からコピーされて上書きされてしまうので
   1面の曲を変えたい場合はそちら側を書き換える必要があります。

   ただこの方法では制限があり、複数データを使用(メモリーカードを2枚使用)している作品では1番目のデータしか聴けない、
   一部のデータに存在する、ループ部分より後ろにあるフレーズを聴くことができないという欠点もあります。

   ちなみにどの番号が未使用かは当サイトのデザエモン+用画像表示ツールで確認できますが、
   未使用曲扱いとなっていても音が数音置かれている程度だったり、
   使用されている曲とほぼ同じだったりする可能性もあります。

   エディタ上の番号→メモリ上の値の対応
    No.01 → 00
    No.02 → 01
    No.03 → 02
    No.04 → 03
    No.05 → 04
    No.06 → 05
    No.07 → 06
    No.08 → 07
    No.09 → 08
    No.10 → 09
    No.11 → 0A
    No.12 → 0B
    No.13 → 0C
    No.14 → 0D
    No.15 → 0E
    No.16 → 0F


------------
2025/10/03
  ようやくWindows11環境に移行しましたが、タスクバーの仕様変更で2段表示とクイック起動が無くなってしまって使いにくく
  何でわざわざ変えてしまうのか?と思いました。
  そしてやっぱりエクスプローラーのフォルダツリーには横スクロールバーが無いんですね…
  なお電GOシリーズはdgVoodoo2併用でとりあえず起動はするようです。(ちゃんとプレイできるかはまだ未確認)

  (以下は個人的なメモ・以前も発生してすっかり忘れてた)
  ePSXeでゲームを起動しても真っ暗のまま落ちる場合
  メニューバーのオプション→CPUオーバークロックの設定が未設定になっているのが原因なので
  x1にチェックを入れる
  ※新規環境への導入後や設定情報を消した場合は確実に発生する?ので特に注意


------------
2025/09/07
  8月にyoutubeに山陽新幹線編の自動運転の動画を上げたのですが、
  元ネタとなる7/13の記事を今まで更新していませんでした。(すみません…)

  ちなみに自動運転と入門編の関係について補足すると、
  自動運転では1段階ずつなめらかにマスコンレベルが変化するのですが
  入門編では指示が出るのは変化が落ち着いてからになっているようです。
  自動運転では停車直前はブレーキが細かく上下して微調整しているのですが、
  入門編ではほぼ一定レベルで停止する指示になるものの、きちんと誤差10cm以内に停まれています。
  これに加え、指示から1段階ずれた状態でも指示で画面が止まらない場合があるのですが
  停車位置・時刻は毎回同じになります。

  このことと、プレイヤー側のマスコン状態が他のモードと別のアドレスになっている事から、
  おそらくプレイヤー側のマスコン状態は指示通りかどうかのチェックにしか使われておらず、
  運転そのものは自動運転のみで行われている(プレイヤーの操作は一切影響しない)と思われます。


------------
2025/08/10
  PS1エミュレーターのDuckStationってPS2のBIOSファイルも使えたんですね。
  ePSXeと違って実機BIOS必須と聞いていて、私にはPS1での吸出し環境が無く
  後でPS3のシステムアップデートファイルから取り出す方法を知ったものの、
  ソフトのインストールやら面倒だったので今まで使っていなかったのですが
  PS2のBIOSを使えると知っていたらもっと早く使っていたのに…

  ※なお、私はPS2-PAR3(無印版)+この方法を使ってDUMPBIOS_USB.ELFを実行して
   PS2実機よりBIOSを吸い出しています。(後から出たPAR3 Ver3.5は標準でELFファイル実行機能があるらしいです)
   現在は薄型PS2+FreeDVDBoot(+吸い出しツール&USBメモリ)という方法でPAR無しでも出来るようです。


------------
2025/07/13
  掲示板での対応で今更気付きましたが、電GO山陽新幹線のATC9999km/hのコードの1行目って
  無くても動くような気がするのですが、もし何かあったら嫌なのでそのままにしておきます。
  確か最初やってた方法で効果が無い場合があって別な方法に変えた記憶はあるので
  その時の残骸なのかもしれませんが…

  このコードを作る時に見つけたATC関連のアドレスですが、
  PS2初期版の場合、(※以降のアドレス情報も全てPS2初期版のもの)
   28C6E0 $28C6E8と同じ値?(使用箇所不明)
   28C6E4 速度計のATC表示値
   28C6E8 ATC制限速度
   28C6EC ATCの段階(下から何段階目かを示す、こことATCの速度パターン定義から制限速度が決まる)
  になっています。(いずれも値は整数値、ATC制限のないフリーランモードでもここに値自体は入る)
  これらのアドレスは毎フレーム書き換えされるのですが、コードではその部分で28C6E4/28C6E8の値を固定しています。
  また27C4A0〜には2byte*11単位(*18種類?)で車種別?のATC速度パターン定義があります。


  また、本作の入門編はマスコンやブレーキが指定された段階に入っていないと画面が止まるタイプですが、
  ATCの速度を変えるとマスコン指示もそれに従って変わります。(ATC9999km/h改造ではマスコン最大指示になる)
  つまりあらかじめ設定したものを固定で出しているのではなく、ちゃんと現在の速度とATC速度を基に計算されているようです。
  この計算する部分を見つけて、その値を現在のマスコン・ブレーキ段階が入るアドレスにコピーするようにすれば
  他のモードで自動運転ができるんじゃないか?と思って調べてみました。

  まずはマスコン指示が出た時にその値を絞り込み検索してアドレスを探しましたが、
  意外にも入門編では他のモードおいて現在のマスコン・ブレーキ段階が入るアドレスに指示される値が直接入り、
  (28C57C:ブレーキ、28C580:マスコン、シリーズ他作品と順番が逆なのは新幹線の運転台に合わせてと思われます)
  現在の状態は別のアドレス(ブレーキ28CB94/マスコン28CB98)に格納されるようになっていました。

  で、入門編の28C57C/28C580への書き込み箇所をエミュレーターのブレークポイント機能で調べてみた所、
  状況によってばらつきはあるものの、アドレス201430から始まる関数の中で行われていました。
  201430の呼び出し元は2箇所あり、そのうちの片方である2013BCは処理をさらに手前に辿っていくと
  17351C〜で「アドレス28C51Cの値が0以外」ならば(2013B0経由で)処理を行うようになっていました。
  この28C51Cは普段は入門編で1になりるのですが(メニューに戻ってきた時点で0に戻る)
  試しに通常の運転モードで1にしてみると、指示が出ることもなく自動運転になりました。
  ※フリーランだと発車時にマスコンとブレーキが同時に入って出発できないので(出発前の演出が無いせい?)
   手動でメモリを書き換えるなどしてブレーキを切る必要あり
   なおフリーランではATC制限が無いが、内部的には制限速度の取得自体は行われるので
   走行〜停車自体は問題無く動作する

  201430へのもう一つの呼び出し元に関してはどういう処理で使われるのかは不明ですが
  まあ今の状態で動くからいいか、ということで今の所はこれ以上の調査はしないつもりです。
  自動運転機能そのものが入っていて、しかも特定アドレスの値を1にするだけでできるとは思いませんでしたが、
  自前で処理を作ったりする手間が省けて助かりました。

  バージョン・機種ごとの書き換えるアドレスは下記の通りです。
  PS2初期版:28C51C
  PS2ベスト版:28F7AC
  Windows版:71660E
  (本格的シリーズ版+アップデート適用後の場合)
  上記アドレスを1にすると自動運転になります。


------------
2025/06/22
  SIRENの音声抽出は掲示板で書いた通り、一部で2つのファイルにまたがるデータがあるので
  ps2_adpcmconv用のリストではなく、単体の抽出・変換ツールとして作っているのですが
  いざ実際に動かしてみると出力にものすごい時間が掛かる上に、
  ムービーの抽出と合わせて容量が約10GBも必要になる(ADPCM音声をWAVに変換すると容量が3倍位になるため)
  結構大きな問題が(今更)発覚しました。
  とはいっても音声が5000以上あるのでps2_adpcmconvだとスクロールが面倒など操作性が悪いので
  本当はタイトーメモリーズの再生ツールのように、ファイルリストとファイル内データの
  2つの選択リストに分けた形の再生機能が付いたツールを作れば
  データを書き出さずに再生できて一番手軽に使えると思うのですが、
  状況的に作るのは厳しいのでとりあえず現状の形(変換のみ)で公開します。
  ※一応、外部の重複データ削除ツールのログを基にして、
   割と数の多い重複データを出力しないようにもしました。

  あと今回気付いたのですが、adpcm.dllが終了フラグが無いデータを変換しようとすると
  終端に余分なデータを出力してしまうというバグが今更発覚しました。
  ※ps2_adpcmconvでは強制的にファイル終端に終了フラグを入れているので
   この問題は発生しません。(多分…)

  他にも掲示板でまだ対応できていない件があるのでこちらも何とかしないと…


------------
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と続く
   おそらくここの値はDVD-ROMのセクタ番号での指定と思われる
   (ISOイメージから読み出す場合、単純にここの値*$800の位置から読み出せば良い)
   ファイル名位置は$14のファイル名群開始位置(=$18D4)が起点(=00)となる

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

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