Skip to content

Commit

Permalink
Add multilanguage readme
Browse files Browse the repository at this point in the history
  • Loading branch information
Leapward-Koex committed Apr 24, 2024
1 parent fef5fd0 commit b73e88f
Show file tree
Hide file tree
Showing 3 changed files with 112 additions and 1 deletion.
53 changes: 53 additions & 0 deletions README.jp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# WpfMaiTouchEmulator
タッチスクリーン上のソフトウェアを使用してSDEZ MaiMaiのタッチセンサーハードウェアをエミュレートすることを目的としたWPF C# アプリケーションです。

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

# デモ


https://github.com/Leapward-Koex/MaiTouchSensorEmulator/assets/30615050/eea21285-fec5-4393-a75d-74274b39789f



https://github.com/Leapward-Koex/MaiTouchSensorEmulator/assets/30615050/e45ca02f-8d82-4ad4-a610-ef08abcb5087



# セットアップ
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) に感謝します。
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@


# WpfMaiTouchEmulator
A WPF C# app meant to emulate the touch sensor hardware for SDEZ MaiMai using software on a touchscreen.

## README in Other Languages

- [简体中文](README.zh.md)
- [日本語](README.jp.md)

# How it works
The app uses com0com to install a virtual COM port pairing of COM3 - COM23. The app then connects to COM23 and emulates how the hardware touch sensor works, sending data over this port.

Expand Down
53 changes: 53 additions & 0 deletions README.zh.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# WpfMaiTouchEmulator
一个用于通过触摸屏软件模拟SDEZ MaiMai的触摸传感器硬件的WPF C# 应用程序。

# 工作原理
该应用程序使用com0com安装一个虚拟的COM端口配对:COM3 - COM23。然后,应用程序连接到COM23并模拟硬件触摸传感器的工作方式,通过此端口发送数据。

# 演示


https://github.com/Leapward-Koex/MaiTouchSensorEmulator/assets/30615050/eea21285-fec5-4393-a75d-74274b39789f



https://github.com/Leapward-Koex/MaiTouchSensorEmulator/assets/30615050/e45ca02f-8d82-4ad4-a610-ef08abcb5087



# 设置
在Windows中禁用三指和四指触摸手势(在W11设置 -> 蓝牙与设备 -> 触摸)

COM3需要空闲,因为这是SDEZ使用的端口。默认情况下,大多数人会发现COM3已被USB串行设备使用。需要通过设备管理器卸载,
1. 打开设备管理器
2. 显示隐藏设备。"视图" -> "显示隐藏设备" -> "端口(COM & LPT)" -> 右键点击COM3设备并卸载。

在您的maimai.ini文件的[AM]部分设置`DummyTouchPanel=0`

打开WpfMaiTouchEmulator.exe应用程序,通过"安装COM端口"按钮安装虚拟端口,可以勾选"自动连接端口"使应用程序在启动时连接到COM23端口,或按"连接到端口"按钮。

如果在安装虚拟端口后应用程序无法绑定到COM23,我发现重新启动我的电脑通常可以解决问题。

启动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) 提供基本的串行数据格式和触摸实现研究。

0 comments on commit b73e88f

Please sign in to comment.