【電車でGO!プロフェッショナル仕様】自車の線路データ領域外を無理矢理走る

Published on ● Video Link: https://www.youtube.com/watch?v=wufCc-Lemio



Duration: 3:46
3,282 views
60


1:01× 向列車
〇 対向列車

色々説明不足過ぎたので補足

線路データというのは、約1.2m毎に何らかの情報 (角度や見た目など)が設定されている4バイトのデータの事で、これをメモリ上のどこかに連続して配置することで線路を形成しています
そして約1.2m移動するごとに、アドレス5A0F4にて参照する線路データのアドレスを4バイトずつずらすことで線路の上を走る処理をしています (実際の現在位置はアドレス5D3C0にてさらに細かく参照しており、5A0F4の指定もその位置に紐づけられている)

線路の途切れが発生してしまうのは、次の区間の線路データがメモリ上に展開されていないことが根本的な原因です
終着駅や、ダイヤデータの切り替え地点となる一部ダイヤの途中駅を通過した場合、次区間のデータがないので途切れてしまうのは当たり前ですが、
途中の停車駅を無理矢理通過した場合等に起きる途切れは、何らかの理由で上手くフラグが立たずに次区間データの読み込みと、それに伴うアドレス5A0F0の更新がなされない事が原因です

0:31 の画像はこまち22号の神宮寺→大曲のもので、アドレスDB790から8を引いたDB788は、自車両用の線路として設計されている部分の最終地点となっています
そこで5A0F0のアドレスをもっと先の場所にすることで、自車用の線路データの後に展開されている対向車両用の線路や全く無関係のデータ部分も、無理矢理自車用の線路データとして読み込み、走れるようになります
ちなみに、キレイに設計されているやつが対向列車専用の線路で、グチャグチャなやつが無関係なデータです

説明が難しいのと文章力のなさで結局よくわからないかもしれませんがお許しください

コード
8005A0F0 FFFF
8005A0F2 801F

約260m以上過走時の強制停車を無効化
80025F40 0000
80025F42 0000

ATS無効化 (動作確認不十分)
8002F65E 1000