Skip to content

Latest commit

 

History

History
53 lines (30 loc) · 4.53 KB

README.jp.md

File metadata and controls

53 lines (30 loc) · 4.53 KB

WpfMaiTouchEmulator

タッチスクリーン上のソフトウェアを使用してSDEZ MaiMaiのタッチセンサーハードウェアをエミュレートすることを目的としたWPF C# アプリケーションです。

動作原理

このアプリはcom0comを使用して仮想COMポートのペアCOM3 - COM23をインストールします。その後、アプリはCOM23に接続し、ハードウェアのタッチセンサーがどのように機能するかをエミュレートし、このポートを通じてデータを送信します。

デモ

InGameDemo.mp4
PanelDemo.mp4

セットアップ

Windowsで三本指及び四本指のタッチジェスチャーを無効にする(W11の設定 -> Bluetooth & デバイス -> タッチ)

このアプリを動作させるにはCOM3が空いている必要があります。多くの場合、COM3はUSBシリアルデバイスによって既に使用されています。これはデバイスマネージャーを通じてアンインストールする必要があります。

  1. デバイスマネージャーを開く
  2. 隠しデバイスを表示する。「ビュー」->「隠しデバイスを表示」->「ポート(COM & LPT)」-> COM3デバイスを右クリックし、アンインストール。

maimaiの.iniファイルの[AM]セクションにDummyTouchPanel=0を設定します。

WpfMaiTouchEmulator.exeアプリを開き、「COMポートをインストール」ボタンをクリックして仮想ポートをインストールします。アプリの起動時にCOM23ポートに自動的に接続するために「自動ポート接続」をチェックするか、「ポートに接続」ボタンを押します。

仮想ポートをインストールした後、アプリがCOM23にバインドできない場合は、PCを再起動すると通常問題が解決します。

SDEZを開始し、通常通りタッチスクリーンを使用します。

[オプション] アプリケーションを毎回手動で開かなくても済むようにするために、「自動ポート接続」を有効にし、MaiMaiのstart.batファイルに@echo offの後に次の行を追加します。start "" "<WpfMaiTouchEmulator.exeへのパス>"

[オプション] W11を使用していて、左スワイプが時々「ウィジェット」ペインを開く場合は、管理者としてこのコマンドを実行してwinget uninstall "windows web experience pack"、画面の指示に従います。

付属のcom0comプログラムを使用せずに仮想COMポートをインストールする

この未知のアプリに管理者権限を与えたくない場合は、アプリに含まれている仮想comのインストール/削除アクションを使用しないで、手動でNull-modem com0comをオンラインでダウンロード(必要なバージョンは2.2.2.0!)して、このコマンドを実行します。 cd "C:\Program Files (x86)\com0com" && setupc.exe install Portname=COM3 Portname=COM23で仮想ポートをインストールし、 cd "C:\Program Files (x86)\com0com" && setupc.exe uninstallで仮想ポートをアンインストールします。

なぜ?

ほとんどのSDEZは内蔵のタッチスクリーンと非常に互換性が低く、SDEZのソースコードを他の人が変更して内蔵タッチコントロールを機能させるか、.dllファイルを編集して再コンパイルする必要があります。このアプリは、すべてのSDEZバージョンで(知る限りでは)すぐに動作するはずです。

もう一つの理由は、タッチセンサーとして使用するITOエッチングパネルの調達が難しく、かなり高価であるためです。

パフォーマンス

まあまあです。アプリは最大1Khzでタッチセンサーウィンドウをポーリングしますが、C#で実行されているため、実際の速度はホストマシンのパフォーマンスに依存する場合があります。

精度については、私はそれほど上手ではないので、高レベルのプレイでどれほどうまく機能するかは言えませんが、私の経験ではかなりうまく機能します。

感謝

基本的なシリアルデータ形式とタッチ実装の研究について、whowechina - mai_picoSucareto - Mai2Touch に感謝します。