Skip to content

Releases

HiganRTool v1.2.1

Choose a tag to compare

@Mako-th Mako-th released this 30 Oct 22:43
v1.2.1
9e9bf3f

セキュリティ周りの見直しを行い、マッチ終了時のメニューを2人がそれぞれ選べるようにしました。
詳細は下部をご覧ください。
v1.2.0の相手とは接続できません。
v1.2.0のままでも対戦はできますが、ルームマッチと観戦一覧からの観戦はできなくなります(観戦コードでの観戦はできます)。
相手と同じバージョンを使ってください。

新しく使用する方はzipをダウンロードし、READMEに従ってセットアップしてください。
過去バージョンを使用している方は、起動時の確認ウィンドウから自動更新を利用してください。
zip以外のファイルは自動更新に使うものであり、基本的にダウンロードは不要です。

機能追加

  • マッチ終了時のメニューを2人がそれぞれ選んで決定するようにしました。
    選んでいる項目は1Pが赤、2Pが青の縁取りで表示されます。
    2人が選んだ項目が異なる場合は下にある項目が優先されます。
    双方が同時に選択している状態になるまではキャンセルも可能です。
    ただし、どちらかが「リプレイを保存して終了」を決定するとその時点で接続を終了します。
  • 試合中の名前の表示の「1P」「2P」を、赤と青で表示するようにしました。
    マッチ終了時のメニューの縁取りの色に合わせました。
  • Match Modeの「人間 対 人間」で、キーボード2台を1Pと2Pに分けて遊べるようにしました。
    「人間 対 人間」を選ぶたびに1Pと2Pがそれぞれ自分のキーボードで案内されるキー(Z・X・Shift・↑・↓・←・→)を押して割り当てます。
    割り当て後、対戦を終了するか「人間 対 人間」より前のメニューに戻るまで割り当てたキーボード以外の入力(パッドを含む)を受け付けません。
    案内が出ている間にパッドのボタンかEscを押すとその回は分けずに遊べます。
    HiganRTool.iniの[input]でsplit_keyboards = 0にすると案内を出さず、今までどおり分けません。
  • HiganRTool.iniの[ui]にstatus_side(試合中の通信状態とディレイを表示する位置)を追加しました。
    1p(左下。既定)/ 2p(右下)/ self(自分側)/ opponent(相手側)から選べます。
  • 自動保存のリプレイのファイル名を、HiganRTool.iniの[replay]のnameで決められるようにしました(#5)。
    {date}(年月日)・{time}(時分)・{1Pchara}・{2Pchara}(使用キャラ名)・{1Pname}・{2Pname}(プレイヤー名)・{wins}(取ったラウンド数)・{rlifes}(ラウンドごとの決着時ライフ)などが使えます。
    既定は今までと同じth9_ud{num}です。
  • 遊んでいる間に新しいバージョンが公開された場合は画面へ表示するようにしました。
    「妖怪 対 妖怪」を選んだときのメニューの下と、接続中のマッチ終了時のメニューの左上に表示されます。
    HiganRTool.iniの[loader]でupdate_check = 0にすると表示しません。

変更

  • 試合中のルーム名はほかの人が使えないようにしました。
    使用中の名前で入ろうとすると「このルーム名は使用されています。」と表示されます。
    使われているルームで接続が終わるとそのルーム名はまた使えるようになります。
  • プレイヤー名とルーム名で使える記号を増やしました。
    ` ; /は使えません。
    また、「w.」か「q.」で始まるルーム名は使えません。
  • 観戦の受付と観戦一覧への掲載はそのルームで対戦する2人だけができるようにしました。
    対戦していない人が観戦用のルームを先に作り、来た観戦者を自分のPCへ接続させられないようにするためです。
  • 通信とルームサーバーの安全性を監査ツールで見直しました。
    見直しの結果と仕組みの上で守れないものはTECHNICALの「11. セキュリティ」に書きました。
  • HiganRTool.exeでControl Flow Guard(CFG)を有効にしました(#3)。
    ASLR・DEP・SafeSEHは以前から有効でしたが、分かりやすいようビルドの設定にも明示しました。
  • 開発者にログを送るときはlogsフォルダをzipにして送る形にしました。
    画面の案内とIssueのテンプレートも合わせました。
  • ソースコードのコメントを分かりやすく書き直しました。

修正

  • 悪意のある観戦のホストが観戦者のPCでスクリーンショットを撮らせたり、空のフォルダを大量に作らせたりできた不具合を修正しました。
  • HiganRToolを使っているPCから関係のない第三者へパケットを送らせることができた不具合を修正しました。
    回線の測定や観戦の申し込み、LANの観戦コードの返答の回数に上限を付けました。
  • 接続コードの相手の名前に含まれる制御文字がHiganRTool.exeのウィンドウにそのまま表示されていた不具合を修正しました。
  • ゲームのフォルダ名に中国語などが含まれるとリプレイが自動保存されなかった不具合を修正しました(#2)。
    管理者として起動したときは文字化けした名前のフォルダに保存されていました。
    そのフォルダに保存されたリプレイは手動での移動をお願いします。
  • 観戦中に回線の遅延が揺らぐだけでホストが観戦者への送信を止めてしまい観戦が止まることがあった不具合を修正しました。
  • MS ゴシックが無いWindows(英語版など)で試合中の通信状態とディレイの行などの英数字が欠けたり間延びしたりして表示されていた不具合を修正しました(#4)。
    MS ゴシックが無いときは英数字を等幅のフォントで表示します。
    これに加えてMS ゴシックが無いときの日本語フォント候補にLinuxのWine・Proton、MacのWineで標準的なフォントを追加しています。
  • 1つのフォルダのリプレイがth9_ud9999まで埋まるとそれ以降が自動保存されなかった不具合を修正しました。
    同じ名前に_2を付けたフォルダに続けて保存します。

未修正・修正が確認できていない不具合

  • 中国本土からは、VPNを使わないとルームのサーバー(ランダムマッチ・ルームマッチ・観戦の一覧)に接続できないことがあります。
    接続コード・LAN・観戦コードはサーバーを使わないので使えます。
    離れた相手とも、Radmin VPN・Hamachi・ZeroTierの仮想LANに2人で入ればLANで対戦できます。
  • MacのWine(CrossOver)では花映塚がフルスクリーンで起動できません。
    ウィンドウで使ってください(素の花映塚でも同じです)。

This release reviews security and lets each player choose from the end-of-match menu.
See below for details.
v1.2.1 cannot connect to v1.2.0.
v1.2.0 can still play matches, but spectating through rooms and the spectator list will no longer work (spectating with a spectate code still works).
Use the same version as your opponent.

New users: download the zip and set it up by following the README.
If you are on an older version, update with the prompt that appears at startup.
The files other than the zip are used by the automatic update; you usually do not need to download them.

Added

  • At the end of a match, each player now chooses and decides on the menu.
    The item each player is choosing is outlined in red for 1P and blue for 2P.
    When the two chosen items differ, the lower one is used.
    You can cancel your decision until both players have decided.
    However, if either player decides on "Save replay and quit", the connection ends right away.
  • "1P" and "2P" in the name display during a match are now shown in red and blue.
    This matches the outline colors of the end-of-match menu.
  • In Match Mode's "人間 対 人間", 1P and 2P can now each play on their own keyboard.
    Each time you choose "人間 対 人間", 1P and 2P each press the keys shown on screen (Z, X, Shift, Up, Down, Left, Right) on their own keyboard to assign it.
    After assigning, input from anything other than the assigned keyboards (including gamepads) is ignored until the match ends or you go back to a menu before "人間 対 人間".
    Press a gamepad button or Esc while the prompt is shown to play without splitting that time.
    Set split_keyboards = 0 under [input] in HiganRTool.ini to skip the prompt and keep playing without splitting.
  • Added status_side (where the status and delay are shown during a match) to [ui] in HiganRTool.ini.
    Choose from 1p (bottom left, default) / 2p (bottom right) / self (your side) / opponent (the opponent's side).
  • You can now set the file name of saved replays with name under [replay] in HiganRTool.ini (#5).
    You can use {date} (yyyymmdd), {time} (hhmm), {1Pchara}, {2Pchara} (character names), {1Pname}, {2Pname} (player names), {wins} (rounds won), {rlifes} (life at the end of each round) and more.
    The default is th9_ud{num}, the same as before.
  • If a new version is released while you are playing, it is now shown on screen.
    It appears below the menu that opens when you choose 妖怪 対 妖怪, and at the top left of the end-of-match menu while connected.
    Set update_check = 0 under [loader] in HiganRTool.ini to turn it off.

Changed

  • A room name now cannot be used by anyone else while its match is running.
    Trying to enter a name in use shows "This room name is in use."
    The name becomes available again when the connection to the room in use ends.
  • More symbols can now be used in player names and room names.
    `, ; and / cannot be used.
    Room names starting with w. or q. cannot be used either.
  • Only the two players who play in a room can now accept spectators and list the match in the spectator list.
    This keeps people who are not playing from creating the spectating room first and making arriving spectators connect to their PC.
  • Reviewed the security of the network code and the room server with audit tools.
    The results and what the design cannot protect are in "11. Security" of TECHNICAL.
  • Enabled Control Flow Guard (CFG) for HiganRTool.exe (#3).
    ASLR, DEP and SafeSEH were already enabled; they are now also stated explicitly in the build settings.
  • Logs are now sent to the developer as a zip of the logs folder.
    The messages on screen and the Issue templates were updated to match.
  • Rewrote the comments in the source code to make them easier to understand.

Fixed

  • Fixed a bug where a malicious spectating host could make a spectator's PC take screenshots or create many empty folders.
  • Fixed a bug where a PC running HiganRTool could be made to send packets to an unrelated third party.
    Added limits on link measurement, spectating requests and LAN spectate-code replies.
  • Fixed a bug where control characters in the opponent's name from a connection code were shown as is in the HiganRTool.exe window.
  • Fixed a bug where replays were not saved automatically when the game folder name contained Chinese or other non-Japanese characters (#2).
    When run as administrator, they were saved into a folder with a garbled name.
    Please move replays saved in that folder manually.
  • Fixed a bug where jitter in the connection alone could make the host stop sending to spectators, freezing the spectated match.
  • Fixed a bug where letters and digits in the status and delay row during a match were cut off or spaced out on Windows without MS Gothic (such as English Windows) (#4).
    Without MS Gothic, letters and digits are now shown in a monospaced font.
    In addition, fonts that are standard on Wine and Proton on Linux and on Wine on Mac were added to the fonts used for Japanese text when MS Gothic is not available.
  • Fixed a bug where replays were not saved automatically after a folder was full up to th9_ud9999.
    They are now saved in a folder with the same name plus _2.

Known issues

  • From mainland China, the room server (random match, room match, spectator list) may not be reachable without a VPN.
    Connection codes, LAN and spectate codes do not use the server, so they still work.
    Players far apart can still play over LAN by joining the same Radmin VPN, Hamachi or ZeroTier virtual LAN.
  • With Wine on Mac (CrossOver), TH09 cannot start in fullscreen.
    Use windowed mode (the same happens without HiganRTool).

HiganRTool v1.2.0

Choose a tag to compare

@Mako-th Mako-th released this 22 Oct 18:10
v1.2.0
fd7ea3a

v1.1.1から観戦を最適化し、継続管理のための仕組み構築などを行いました。
詳細は下部をご覧ください。
v1.1.1の相手とは接続できません。
相手と同じバージョンを使ってください。

新しく使用する方はzipをダウンロードし、READMEに従ってセットアップしてください。
過去バージョンを使用している方は、起動時の確認ウィンドウから自動更新を利用してください。
zip以外のファイルは自動更新に使うものであり、基本的にダウンロードは不要です。

機能追加

  • HiganRTool.ini [netplay]にrollback_cutin_se(rollback使用時のカットイン音を鳴らすタイミングの設定)を追加しました。
    既定はconfirmedになっており、被弾の音と同じく確定するまで鳴らさないようにします。
    ロールバックフレームが大きいほど自分のカットインの音も確定するまで少し(最大約130ms)遅れて鳴ります。予測の時点で鳴らしたいときはliveにしてください。
  • 観戦中のマッチの中でEscを押すと、ゲームのポーズが開くようにしました。
    ポーズが開けない間は、画面の左上に「一時停止中」と出ます。
  • ランダムマッチとルームマッチの観戦で、観戦者どうしで中継するようにしました。
    ホストが直接送るのは基本的に観戦者2人までになり、回線の負荷が減ります。
    ほかの観戦者へ中継したくないときは、HiganRTool.iniの[spectate]のrelay = 0にしてください。
  • HiganRTool.iniの[spectate]にff_max(途中から観戦したときの早送りの速さ。1〜16倍、既定8)を追加しました。

変更

  • HiganRTool.iniの[pacing]にvsync(垂直同期)を追加しました。
    off(取らない。既定)/ on(取る)/ game(custom.exeの設定のまま)から選べます。custom.exeの設定は書き換えません。
  • HiganRTool.iniの[pacing]におけるauto_windowをwait(passive / active)に変更し、既定を処理が軽いpassiveにしました。
    今の設定は自動更新のときに引き継ぎます。
  • 垂直同期を取らないフルスクリーン起動でもツール側で60.000fpsを維持するようにしました。
  • フルスクリーンの垂直同期の既定を「取らない」にしました(ツール側で60.000fpsを維持します)。
    custom.exeの設定に従わせたいときは、[pacing]のvsync = gameにしてください。
  • Story・Extra・Matchのリプレイを保存するときに、長い試合だとゲームが落ちることがあったゲーム側の不具合をこのツールで修正するようにしました。(プレイ時の動作は変わりませんが、リプレイを保存する際のゲームの動作を変えています。)
  • 妖怪対妖怪以外で保存したリプレイにもHiganRToolで起動した印(ツールのバージョン)を残すようにしました。
    通常のモードでも素で起動した際と同様に遊べてリプレイも残せるため、判別できるようにしました。
  • 観戦をやめる操作を、Escの3秒長押しに変更しました。
    ポーズを開くEscと区別するためです。ポーズの「タイトルへ戻る」でもやめられます。
  • 観戦の接続にIPv6も使用するようにしました。
  • 途中から観戦したときの追いつくスピードを速くしました(既定で8倍速)。
  • 観戦者が満員で観戦できなかったときに、その旨を表示するようにしました。
  • 観戦者へ試合を送るホストを、2人のうち接続しやすく回線の上りが太い方に自動で決めるようにしました。
  • ホストから観戦者への送信で対戦の通信が詰まりそうなときは、観戦者への送信を減らして対戦を優先するようにしました。
  • 観戦中にウィンドウを動かすなどしてゲームが止まっている間も、ホストからの試合の受け取りを続けるようにしました。
  • 観戦者の手元に溜めた記録が上限(約1時間分)に達すると、観戦を終えるようにしました。
  • ログの文言を短く読みやすい形に見直しました。
  • GitHubのリポジトリで、pushとプルリクエストのたびにGitHub Actionsでテストを回すようにしました。
  • 依存パッケージの更新をDependabotで週に1回チェックし、テストが通るのを検証してから取り込むようにしました。

修正

  • フルスクリーンの設定で起動すると落ちる場合があった不具合を修正しました。
  • フルスクリーンで別のウィンドウに切り替えている間、処理が重くなっていた不具合を修正しました。
  • thpracが、HiganRToolから起動した花映塚を認識しなかった不具合を修正しました。
  • Discordのゲームキャプチャが、vpatchで登録した花映塚とHiganRToolからの起動で別認識になっていた不具合を修正しました。
  • MacのCrossOverなど古いWineで、HiganRTool.exeが起動しなかった不具合を修正しました。
  • HiganRToolから起動した花映塚が動いている間に、別の花映塚を起動できてしまった不具合を修正しました。
  • ルームマッチ・接続コード・LANで、相手が観戦を禁止していても観戦できていた不具合を修正しました。
    2人のどちらかが[spectate]のenable = 0なら観戦できません。
    ルームマッチでは、観戦者に観戦できないことをすぐ表示するようにしました。
  • インターネット越しの観戦で、観戦者に試合が届かないことがあった不具合を修正しました。
    対戦がIPv6で接続した試合や、観戦者のPCの時計がずれていた場合に起きることがありました。

未修正・修正が確認できていない不具合

  • 中国本土からは、VPNを使わないとルームのサーバー(ランダムマッチ・ルームマッチ・観戦の一覧)に接続できないことがあります。
    接続コード・LAN・観戦コードはサーバーを使わないので使えます。
    離れた相手とも、Radmin VPN・Hamachi・ZeroTierの仮想LANに2人で入ればLANで対戦できます。
  • MacのWine(CrossOver)では、花映塚がフルスクリーンで起動できません。
    ウィンドウで使ってください(素の花映塚でも同じです)。

This release optimizes spectating and sets up systems for ongoing maintenance, among other changes since v1.1.1.
See below for details.
v1.2.0 cannot connect to v1.1.1.
Use the same version as your opponent.

New users: download the zip and set it up by following the README.
If you are on an older version, update with the prompt that appears at startup.
The files other than the zip are used by the automatic update; you usually do not need to download them.

Added

  • Added rollback_cutin_se under [netplay] in HiganRTool.ini (when to play the cut-in sound while using rollback).
    The default is confirmed, which holds the sound until the frame is confirmed, like the hit sound.
    The more rollback frames, the later your own cut-in sound plays, as it also waits until confirmed (up to about 130 ms). To play it at prediction time, set live.
  • Pressing Esc during a match while spectating now opens the game's pause menu.
    While the pause menu cannot be opened, "Paused" is shown at the top left.
  • When watching random matches and room matches, spectators now relay the match to each other.
    The host basically sends directly to up to 2 spectators, which reduces the load on the connection.
    If you do not want to relay to other spectators, set relay = 0 under [spectate] in HiganRTool.ini.
  • Added ff_max under [spectate] in HiganRTool.ini (fast-forward speed when you join mid-match; 1–16 times, default 8).

Changed

  • Added vsync under [pacing] in HiganRTool.ini.
    Choose from off (default) / on / game (the custom.exe setting as is). The custom.exe setting is not rewritten.
  • Renamed auto_window under [pacing] in HiganRTool.ini to wait (passive / active), and made the lighter passive the default.
    Your current setting is carried over on the automatic update.
  • The tool now keeps 60.000 fps in fullscreen without vsync as well.
  • Vsync in fullscreen is now off by default (the tool keeps 60.000 fps).
    To follow the custom.exe setting, set vsync = game under [pacing].
  • The tool now works around a game bug where saving a Story, Extra or Match replay of a long game could crash the game. (Gameplay is unchanged, but the game's behavior when saving a replay is changed.)
  • Replays saved outside 妖怪 対 妖怪 now also carry a mark that the game was started from HiganRTool (the tool's version).
    Normal modes can be played and their replays saved just as when starting the game on its own, so the mark lets you tell them apart.
  • Stopping spectating is now done by holding Esc for 3 seconds.
    This is to tell it apart from the Esc that opens the pause menu. You can also stop with "Return to title" in the pause menu.
  • Spectating connections now also use IPv6.
  • Spectators who join mid-match now catch up faster (8x by default).
  • When you cannot watch because the match is full of spectators, this is now shown on screen.
  • The host that sends the match to spectators is now chosen automatically as the player who is easier to connect to and has the faster upload.
  • When the host's sending to spectators could slow down the match traffic, the host now sends less to spectators and gives priority to the match.
  • Spectators keep receiving the match from the host even while the game is stopped, such as while the window is being dragged.
  • Spectating now ends when the records buffered on the spectator's PC reach the limit (about one hour).
  • Reworded the log messages to be shorter and easier to read.
  • The GitHub repository now runs the tests with GitHub Actions on every push and pull request.
  • Dependency updates are now checked weekly with Dependabot and taken in only after the tests pass.

Fixed

  • Fixed a crash that could happen when starting with the fullscreen setting.
  • Fixed the heavy processing load while another window was in front of the game in fullscreen.
  • Fixed thprac not recognizing the game started from HiganRTool.
  • Fixed Discord's game capture treating the game started from HiganRTool and the one registered with vpatch as different games.
  • Fixed HiganRTool.exe not starting on older Wine, such as CrossOver on Mac.
  • Fixed another copy of the game being able to start while the one started from HiganRTool was running.
  • Fixed matches being watchable in room matches, connection-code matches and LAN even when the opponent did not allow watching.
    If either player has enable = 0 in [spectate], the match cannot be watched.
    In a room match, the spectator is now told right away that the match cannot be watched.
  • Fixed spectators not receiving the match over the internet in some cases.
    This could happen when the match was connected over IPv6, or when the spectator's PC clock was off.

Known issues, or fixes not yet confirmed

  • From mainland China, the room server (Random Match, Room Match and the spectate list) may be unreachable without a VPN.
    Connection codes, LAN play and watch codes do not use the server and still work.
    You can also play a distant opponent with LAN play if you both join a Radmin VPN, Hamachi or ZeroTier virtual LAN.
  • On Wine (CrossOver) on Mac, the game cannot start in fullscreen.
    Use windowed mode (the same happens with the game on its own).

HiganRTool v1.1.1

Choose a tag to compare

@Mako-th Mako-th released this 17 Oct 12:40
v1.1.1
33d0281

v1.1.0から、VPNの仮想LANへの対応と軽微な不具合の修正を行いました。
詳細は下部をご覧ください。
v1.1.0の相手とは接続できません。
対戦相手と同じバージョンを使ってください。

新しく使用する方は zip をダウンロードし、READMEに従ってセットアップしてください。
過去バージョンを使用している方は、起動時の確認ウィンドウから自動更新を利用してください。
zip以外のファイルは自動更新に使うものであり、基本的にダウンロードは不要です。

修正

  • LANの対戦・観戦が、Radmin VPN・Hamachi・ZeroTierの仮想LANで使えなかったのを修正しました。
    ホストの画面では、VPNのアドレスに「(Radmin)」のようにツールの名前が付きます。
  • LANのホストの待機画面に、仮想のアダプター(VMwareなど)のアドレスも出すように修正しました。
    アドレスは本物のLANのものを先頭とし、一度に3つまで出ます。
    4つ以上あるときは↑↓で残りを表示できます。
  • サイドの希望が2人で被ったときは、先着でなくランダムで決めるように修正しました。
  • 「相手の応答を待っています」が出ている間のEscでの切断を3秒の長押しにしました。
  • 画面の文言とメニューの説明を一部微調整しました(HiganRTool.iniの読めない行の案内など)。
  • ゲームを閉じたときに詳細ログ(.csv.gz)が途中で切れて残ることがあったのを修正しました。
  • 接続の直後にディレイを変えたマッチで、リプレイに記録するディレイが変える前の値になっていたのを修正しました。
    マッチの中で一番長く使ったディレイを記録します。
  • 起動したときに更新を確認しなかった場合、その理由をログに書くようにしました。
    HiganRTool.iniの[loader]のupdate_checkが0のときは、画面にも出します。
  • ログに、接続ごとの記録(選んだメニュー・ホストかどうか・待機時間)と、観戦者の出入りを書くようにしました。

未修正・修正が確認できていない不具合

  • 中国本土からは、VPNを使わないとルームのサーバー(ランダムマッチ・ルームマッチ・観戦の一覧)に接続できないことがあります。
    接続コード・LAN・観戦コードはサーバーを使わないので使えます。
    離れた相手とも、Radmin VPN・Hamachi・ZeroTierの仮想LANに2人で入ればLANで対戦できます。

追記: AIの使用について

このツールのコードはAI(Claude)が書いています。
技術者向けの資料(TECHNICAL.md)もAIが書いたものですが、これは私自身や外部の技術者が仕様を確認・理解できるように書いています。
オープンソースにしているのも仕様を公開するためです。

何を作り・どう設計し・何を優先するか(遅延の最小化やセキュリティの仕様など)は、私が決めています。
また、実装の途中で出てきた判断(挙動・画面に出す文言・操作方法・遅延の扱いなど)も、その都度私が決めています。
これに加え、花映塚本体を用いたテストの際は私自身と友人等で実際に対戦を行い、ログを確認して何を修正すべきか決めています。

adonisやJu.N.Owenなどのネット対戦ツールは仕組みを参考にさせていただきましたが、コードのコピーはしていません。

私自身コンピューターの基礎的な知識は持っていますが、ロールバックの標準的な仕様や対戦ゲームにおけるネット通信の仕様、プロトコルなどは技術者向けの資料やWebでの検索、友人のアドバイスなどで勉強しながら進めているため、理解や実装が十分でないところもあると思います。
ライセンスのとおり無保証ではありますが、このツールは私が責任を持ち、出来る範囲で継続して管理していく所存です。
何卒よろしくお願いいたします。


This release adds support for VPN virtual LANs and contains minor fixes since v1.1.0.
See below for details.
v1.1.1 cannot connect to v1.1.0.
Use the same version as your opponent.

New users: download the zip and set it up by following the README.
If you are on an older version, update with the prompt that appears at startup.
The files other than the zip are used by the automatic update; you usually do not need to download them.

Fixed

  • Fixed LAN play and spectating not working over the virtual LANs of Radmin VPN, Hamachi and ZeroTier.
    On the host's screen, VPN addresses carry the tool's name, such as "(Radmin)".
  • The LAN host's waiting screen now also shows the addresses of virtual adapters (such as VMware).
    Real LAN addresses come first, and up to 3 are shown at a time.
    With 4 or more, use ↑↓ to see the rest.
  • When both players want the same side, it is now decided at random instead of first come, first served.
  • While "Waiting for the opponent" is shown, you now disconnect by holding Esc for 3 seconds.
  • Some on-screen wording and menu messages were fine-tuned (such as the notice for unreadable lines in HiganRTool.ini).
  • Fixed the detailed log (.csv.gz) sometimes being cut off when the game was closed.
  • Fixed replays recording the delay from before the change in matches where the delay was changed right after connecting.
    It now records the delay used the longest in the match.
  • When the update check is skipped at startup, the reason is now written to the log.
    When update_check in [loader] of HiganRTool.ini is 0, it is also shown on screen.
  • The logs now record each connection (the menu item chosen, whether you are the host, and the waiting time) and spectators joining and leaving.

Known issues, or fixes not yet confirmed

  • From mainland China, the room server (Random Match, Room Match and the spectate list) may be unreachable without a VPN.
    Connection codes, LAN play and watch codes do not use the server and still work.
    You can also play a distant opponent with LAN play if you both join a Radmin VPN, Hamachi or ZeroTier virtual LAN.

Note: About the use of AI

The code of this tool was written by AI (Claude).
The technical document (TECHNICAL.md) was also written by AI, so that I and outside engineers can check and understand the design.
That is also why the tool is open source: to make the design public.

I decide what to build, how it is designed, and what to prioritize (such as minimizing latency and the security design).
I also make the decisions that come up during implementation, such as how it behaves, the on-screen wording, the controls, and how latency is handled.
In addition, when testing with the actual game, I play real matches myself and with friends, and read the logs to decide what needs to be fixed.

I referred to how other netplay tools such as adonis and Ju.N.Owen work, but did not copy their code.

I have a basic knowledge of computers, but I am still learning the standard approaches to rollback, netcode for competitive games, and network protocols, through the technical document, web searches and advice from friends, so there may be places where my understanding or the implementation falls short.
It comes with no warranty, as stated in the license, but I take responsibility for this tool and intend to keep maintaining it as far as I can.
Thank you for your understanding.

HiganRTool v1.1.0

Choose a tag to compare

@Mako-th Mako-th released this 15 Oct 10:11
v1.1.0
fafc525

v1.0.0から不具合修正と機能追加を行いました。詳細は下部をご覧ください。
v1.0.0の相手とは接続できないのでご注意ください。
対戦相手と同じバージョンを使ってください。
v1.0.0を使っている場合、起動したときに更新を確認する画面が出ます。

追加機能

  • v1.0.0で保存したリプレイを直すHiganRTool_replay_fix.exeを同梱しました(使い方は下の「リプレイの修正」)。
  • LAN対戦を実装しました。
    メニューの「LAN」の「ホスト」「クライアント」「観戦」で、同じLANにいる人とサーバーを通さずに対戦・観戦できます。
  • 接続コードでの対戦も、観戦できるようになりました。
    対戦がつながったら、ホストがCtrl+Cで観戦コードをコピーして観戦者に伝えます。
    観戦者は、メニューの「観戦コード入力」で観戦できます。
  • Ctrlで、ランダム選択と勝敗確定後の会話のスキップができるようにしました。
    ネット対戦の選択画面と試合の中でも、Ctrl(パッドのスキップボタン)が効きます。
    これまでのRキーのランダムはなくしました。
    キャラ選択でディレイを変える(Ctrl+数字)と、キャラもランダムで動くので注意してください。
  • 対戦が終わったとき(接続が切れたとき)は、タイトルの「妖怪 対 妖怪」へ戻るようにしました。
  • ネット対戦の間も、P・Homeでスクリーンショットを撮れるようになりました(相手のPCには保存されません)。
  • 自動アップデートの表示を変更しました。
    ダウンロードの進み具合と、更新した後の変更点を表示します。
    HiganRTool.iniは新しい形に合わせ、変えた設定は引き継ぎます。

修正

  • 2人のチャージの設定(slow / charge)が違うマッチで、保存したリプレイが再生でずれていたのを修正しました。
  • ゲームのフォルダにd3d8.dll(ENBSeriesのDX8 to DX9 Convertorなど)を入れていると、「妖怪 対 妖怪」を決定したときに花映塚が落ちるのを直しました。
  • キャラの解放の状況が2人で違うときや、ランダム選択のときに、キャラ選択の相手のカーソルがずれるのを直しました。
  • 花映塚のキーコンフィグで1Pの入力機器がパッドになっていると、キーボードで操作できなかったのを直しました。
  • Linux(Wine)で、ルームマッチ・ランダムマッチ・観戦一覧が使えなかったのを直しました。
  • 相手のゲームが固まったときに、こちらも止まったままになっていたのを直しました。
    60秒応答が無いと切断します。
  • HiganRTool.exeを続けて起動すると、花映塚が何個も起動していたのを直しました。
    同じ花映塚がもう動いているときは、何もせずに終了します。
  • 接続したときに、ウィンドウの枠まで点滅していたのを、タスクバーだけにしました。
  • 遅れて入った観戦者が、途切れることなく追いつくようにしました。
  • HiganRTool.iniに読めない行があっても、その行だけを既定値にして動くようにしました。

変更

  • プレイヤー名・サイド・同期方式・ディレイ・言語を、メニューの「設定」にまとめました。
  • rollbackでディレイがautoのときは、pingに対して低めの値を選ぶように変更しました。
    pingが小さく安定しているときは0Fを選びます。
  • DLLの読み込みを待つ時間を10秒から60秒に延ばしました。
  • ログに、起動したときに落ちる場合の記録(loader_YYYYMMDD.log)と、読み込まれているd3d8.dllの種類を書くようにしました。

リプレイの修正

v1.0.0で保存したリプレイは、2人のチャージの設定が違うマッチだと再生でずれます。
HiganRTool_replay_fix.exeをダブルクリックしてリプレイかフォルダを選び、マッチで使った2人の設定を選んで「リプレイ単体を修復」を押してください。
直したリプレイは、元のフォルダの1つ上のfix_replay\<元のフォルダ名>\<1Pの設定>-<2Pの設定>\にできます(元のファイルは書き換えません)。
v1.1.0以降のリプレイと直したリプレイは、修正が不要なのでスキップします。
使い方は、zipの中のREADME.txtの「リプレイを直す道具」にあります。

未修正の不具合

  • 中国本土からは、VPNを使わないとルームのサーバー(ランダムマッチ・ルームマッチ・観戦の一覧)につながらないことがあります。
    接続コード・LAN・観戦コードはサーバーを使わないので使えます。
  • Linux(Wine)で、DLLの読み込みを待つところで時間切れになることがあります。
    wineserver -kを実行してから起動し直してください。

更新方法

  • v1.0.0を使用している場合は、起動したときに出る画面で「はい」を選ぶと、自動で更新して再起動します。
  • 新しく使う場合は、Releaseからzipをダウンロード・展開し、HiganRTool.exeを起動してください。
  • zip以外のファイル(HiganRTool.exe・HiganRTool.dll・HiganRTool_replay_fix.exe・テキストのファイル・manifest.txt)は自動アップデートが使うものです。ダウンロードする必要はありません。

Changes since v1.0.0.
v1.1.0 cannot connect to v1.0.0.
Use the same version as your opponent.
If you are on v1.0.0, an update prompt appears when you start it.

New

  • HiganRTool_replay_fix.exe, which fixes replays saved by v1.0.0, is included in the zip (see "Fixing replays" below).
  • LAN play.
    With "Host", "Client" and "Watch" under "LAN" in the menu, you can play and spectate with people on the same LAN without the server.
  • Matches connected with a connection code can now be spectated.
    Once the match is connected, the host copies a watch code with Ctrl+C and gives it to the spectators.
    Spectators enter it in "Paste watch code" in the menu.
  • Ctrl now picks at random and skips the dialogue after a match is decided.
    It works on online select screens and in matches, as does the skip button on a gamepad.
    The R key for random select has been removed.
    Note that changing the delay (Ctrl + number) on character select also moves the character at random.
  • When a match ends (the connection is closed), you return to 妖怪 対 妖怪 on the title screen.
  • During online play, P / Home take screenshots (nothing is saved on the opponent's PC).
  • The update display has changed.
    It shows the download progress, and what changed after updating.
    HiganRTool.ini is brought to the new layout and the settings you changed are kept.

Fixed

  • Saved replays desynced on playback when the two players used different charge settings (slow / charge).
  • With a d3d8.dll in the game folder (such as ENBSeries DX8 to DX9 Convertor), the game crashed when 妖怪 対 妖怪 was chosen.
  • On character select, the opponent's cursor drifted when the two players had different characters unlocked, or during random select.
  • Keyboard input did not work when Player 1's input device in the game's key config was set to a gamepad.
  • On Linux (Wine), Room Match, Random Match and the spectate list did not work.
  • When the opponent's game froze, your game stayed frozen too.
    It now disconnects after 60 seconds without a response.
  • Starting HiganRTool.exe several times in a row started several copies of the game.
    If the same game is already running, it now exits without starting anything.
  • When connecting, the window frame flashed as well; now only the taskbar button flashes.
  • Late spectators now catch up without stalling.
  • A line in HiganRTool.ini that cannot be read falls back to its default; the rest still works.

Changed

  • Player name, side, netcode, delay and language are now under "Settings" in the menu.
  • With rollback and auto delay, a lower value is picked for the same ping.
    It picks 0F when the ping is low and stable.
  • The wait for the DLL to load was raised from 10 to 60 seconds.
  • The logs now record startup crashes (loader_YYYYMMDD.log) and which d3d8.dll is loaded.

Fixing replays

Replays saved by v1.0.0 desync on playback if the two players used different charge settings.
Double-click HiganRTool_replay_fix.exe, choose replays or a folder, choose the settings both players used in the match, and press "Fix this replay".
Fixed copies are written to fix_replay\<original folder name>\<1P setting>-<2P setting>\, one level above the original folder (the originals are not changed).
Replays saved by v1.1.0 or later and replays already fixed are skipped as they need no fix.
See "Replay fixer" in README_en.txt in the zip for how to use it.

Known issues

  • From mainland China, the room server (Random Match, Room Match and the spectate list) may be unreachable without a VPN.
    Connection codes, LAN play and watch codes do not use the server and still work.
  • Under Linux (Wine), the launcher may time out while waiting for the DLL to load.
    Run wineserver -k and start it again.

How to update

  • If you are on v1.0.0, choose "Yes" on the prompt at startup; the tool updates itself and restarts.
  • For a new install, download the zip from Releases, extract it and run HiganRTool.exe.
  • The other files (HiganRTool.exe, HiganRTool.dll, HiganRTool_replay_fix.exe, the text files and manifest.txt) are used by the automatic update. You do not need to download them.

HiganRTool v1.0.0

Choose a tag to compare

@Mako-th Mako-th released this 13 Oct 14:35

First release.

Download HiganRTool-v1.0.0.zip, extract it outside the Touhou 9 folder, and start HiganRTool.exe. See the README for details.

The other files (HiganRTool.exe, HiganRTool.dll, the text files and manifest.txt) are used by the automatic update. You do not need to download them.


最初のリリースです。

HiganRTool-v1.0.0.zip を取ってきて、花映塚のフォルダの外に展開し、HiganRTool.exe を起動してください。詳しくは README を見てください。

ほかのファイル(HiganRTool.exe・HiganRTool.dll・テキストのファイル・manifest.txt)は自動の更新が使うものです。取ってくる必要はありません。