MaiTouchSensorEmulator/README.jp.md

54 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# WpfMaiTouchEmulator
タッチスクリーン上のソフトウェアを使用してSDEZ MaiMaiのタッチセンサーハードウェアをエミュレートすることを目的としたWPF C# アプリケーションです。
# 動作原理
このアプリはcom0comを使用して仮想COMポートのペアCOM3 - COM23をインストールします。その後、アプリはCOM23に接続し、ハードウェアのタッチセンサーがどのように機能するかをエミュレートし、このポートを通じてデータを送信します。
# デモ
https://github.com/user-attachments/assets/fd0d8f08-586b-416e-8e49-7e389a08d02b
https://github.com/user-attachments/assets/1862e59b-520c-4cd5-adf4-37389a75815d
# セットアップ
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_pico](https://github.com/whowechina/mai_pico) と [Sucareto - Mai2Touch](https://github.com/Sucareto/Mai2Touch) に感謝します。