https://github.com/leapward-koex/maitouchsensoremulator
A touch sensor emulator for maimai DX (SDEZ) that works with any regular touch screen. | 适用于任何普通触摸屏的 maimai DX(SDEZ)触摸传感器模拟器。
https://github.com/leapward-koex/maitouchsensoremulator
maimai maimai-dx maimaidx rythm-game serial-communication sinmai touchscreen wpf
Last synced: 4 months ago
JSON representation
A touch sensor emulator for maimai DX (SDEZ) that works with any regular touch screen. | 适用于任何普通触摸屏的 maimai DX(SDEZ)触摸传感器模拟器。
- Host: GitHub
- URL: https://github.com/leapward-koex/maitouchsensoremulator
- Owner: Leapward-Koex
- License: gpl-3.0
- Created: 2024-02-08T04:41:23.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-09-11T11:01:02.000Z (10 months ago)
- Last Synced: 2025-09-22T03:40:35.964Z (9 months ago)
- Topics: maimai, maimai-dx, maimaidx, rythm-game, serial-communication, sinmai, touchscreen, wpf
- Language: C#
- Homepage:
- Size: 7.82 MB
- Stars: 67
- Watchers: 4
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.jp.md
- License: LICENSE
Awesome Lists containing this project
README
# 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 "" ""`
[オプション] 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) に感謝します。