ティンクル☆くるせいだーすとは #
ごちゃごちゃ書こうと思ったが知らない人はまずこの記事にたどり着かないだろうしどうでもよくなった。
検証用のツールを書いた #
2022年の春あたりに書いたやつ。
動機 #
好奇心、検証目的が8割。
Rustを使ったことがなかったので使ってみたかった。
オンライン対戦を実装できるかどうか小手調べしたかった。
理論的には可能だが、現実的な結論としてはデバッグシンボルがないときつい。
デバッグシンボルとは
デバッグ用に関数の名前、シグネチャや型の名前などの情報が格納されているファイル。
.pdbファイルとか。
商用ソフトやゲームなどではセキュリティや情報保護上の理由で基本的にストリップされている。(大抵の環境のデフォルトではReleaseモードでビルドするとデバッグシンボルは生成されない。)
これがあると関数の名前や構造体の型、メンバの名前も分かり、プログラムの構造を理解するのが非常に簡単になる。
家庭用ゲーム機のゲーム等でもまれにデバッグシンボルが残っていたりする。
godsendだ。
PSP版のシリーズ作品ではオンライン対戦ができるのにSBXではできなかった。
ソースコード #
🔗https://github.com/nisetynet/twinkle-crusaders-sbx-tool で公開した。
自分で書いたwinapi関連のライブラリ等を別レポで管理していたがこの機会に一つにまとめた。
ビルドが通らなくなっていたので修正した。
本質的な部分はsbx-offset
(関数や構造体のアドレス)とsbx-tool-core
(ゲーム内の構造体、関数のhook等)。
利用方法 #
CheatEngine等でインジェクトするか、dinput8.dllをゲームの実行ファイルがあるフォルダに突っ込んで起動すれば勝手に読み込まれる。
詳しくはソースコードのReadmeを読んでくれ。
今さらこのゲームを遊んでいる人がいるとは思えないが。
前のrepoでDMMだかdlsiteだかのSBXではツールが起動しなかったみたいな報告があったので注意。
動作動画 #
🔗ティンクル☆くるせいだーす SBX HP上限解放一部
🔗ティンクル☆くるせいだーす SBX Ex 上限下限 解放
反省点 #
- C++でやるべきだった
Rust nightlyの機能は急に消えたり、移動したりするので急にビルドできなくなったりして大変だった。
imguiやwinapi、detour等の依存ライブラリもnightly関連でぶっ壊れることが多くバージョン管理が面倒だった。
やってることがunsafeなのでunsafeだらけになってキモチわるかった。 - 調べた情報をバックアップしておくべきだった
関数もちまちま名前をつけたり、構造体も定義して解析していたが、どうでも良くなったときにすべて捨ててしまった。 - この時間を他のことに使うべきだったかもしれない
全くの無駄ではなかったが。
良かった点 #
- Rustやそのエコシステムを少し使えるようになった。
関連作品、最近のゲームについて #
ハナヒメはグラフィックが進化したがゲーム性が落ちたので自分的には微妙だった。
DMM Gamesで🔗ティンクルスターナイツという似たシステムのゲームが出ていて確認してみたくなったのでアカウント作成してプレイしたが、期待はずれだった。
ガチャ課金ゲーなのもクソだ。
月額固定で有料なら分かるが。
プリっちとクルくるは世界観が独特なので面白かった。
俺はそこを求めている。
ゲーム全般についてだが、グラフィックが向上したり、システムの利便性は上がったと思うが何故かやる気すら起きない。
老害懐古厨になってしまったのかも。
基本的に旧作のギャルゲやエロゲを少しずつやるだけにしようと思う。