SkillAgentSearch skills...

Mai22maitouch

Convert mai2touch serial data to 'old cab' maimai game(e.g. maimai FiNALE) touch, auto pass start check.

Install / Use

/learn @Eternal973/Mai22maitouch
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

mai22maitouch

(mai-two-to-mai-touch, mttmt/m22mt)</br> Convert mai2touch serial data to 'old cab' maimai game(e.g. maimai FiNALE) touch, auto pass start check.
Support ADX Serial Mode, HDX, mai_pico, Mai2Touch and other controller with native serial touch.

Attention, all of these codes are basically generated by AI(DeepSeek&GPT-4o)

I really don't know if there's better way, I'm not good at programming, this is only for my own need. Thanks to @clansty, now we have correct Individual bit breakdown for mai2, already updated. AI is really not good at orders/tables/numbers, they will make everything messed up:(

How to Use

You only need mai22maitouch.py, other files is for testing.
1.Use com0com to generate pair COM33<->COM3. 3 serial ports for mai22maitouch, COM13 for your device(edit in Device Manager), COM33(virtual) for python to write in data, COM3(virtual) for game to read. 2.Edit GrooveMaster.ini (config for maimai_dump_.exe), make sure DEV 1 and NO_SERIAL 0. I don't know much about how micetools work, you can try by yourself if you use micetools.
3.Run mai22maitouch.py,it will start listening COM3 and COM13 (connect and config your controller's port first!).
4.Start your game, the TouchSensor check will be a GOOD=).
You may put a # before all the "print()" to disable printing log to console, which may optimize speed and latency.

It works!

Tested with SDEY1.99B, cool.

How it works

Ref:Sucareto/Mai2Touch-GitHub
Ref:The MaiMai Touchscreen-bsnk.me
The Individual bit breakdown for mai2
| Byte | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ASCII | |------|----|----|----|----|----|----|----|----|-------| | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | ( | | 1 | 0 | 0 | 0 | A5 | A4 | A3 | A2 | A1 | varies | | 2 | 0 | 0 | 0 | B2 | B1 | A8 | A7 | A6 | varies | | 3 | 0 | 0 | 0 | B7 | B6 | B5 | B4 | B3 | varies | | 4 | 0 | 0 | 0 | D2 | D1 | C2 | C1 | B8 | varies | | 5 | 0 | 0 | 0 | D7 | D6 | D5 | D4 | D3 | varies | | 6 | 0 | 0 | 0 | E4 | E3 | E2 | E1 | D8 | varies | | 7 | 0 | 0 | 0 | 0 | E8 | E7 | E6 | E5 | varies | | 8 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | ) |

The Individual bit breakdown for mai
| Byte | P1/2 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ASCII | |------|------|----|----|----|----|----|----|----|----|-------| | 0 | | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | ( | | 1 | P1 | 0 | 1 | 0 | 0 | B2 | A2 | B1 | A1 | varies | | 2 | P1 | 0 | 1 | 0 | 0 | B4 | A4 | B3 | A3 | varies | | 3 | P1 | 0 | 1 | 0 | 0 | B6 | A6 | B5 | A5 | varies | | 4 | P1 | 0 | 1 | 0 | C | B8 | A8 | B7 | A7 | varies | | 5 | | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | @ | | 6 | | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | @ | | 7 | P2 | 0 | 1 | 0 | 0 | B2 | A2 | B1 | A1 | varies | | 8 | P2 | 0 | 1 | 0 | 0 | B4 | A4 | B3 | A3 | varies | | 9 | P2 | 0 | 1 | 0 | 0 | B6 | A6 | B5 | A5 | varies | | 10 | P2 | 0 | 1 | 0 | C | B8 | A8 | B7 | A7 | varies | | 11 | | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | @ | | 12 | | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | @ | | 13 | | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | ) |

I think that's enough.

View on GitHub
GitHub Stars17
CategoryDevelopment
Updated4mo ago
Forks2

Languages

Python

Security Score

87/100

Audited on Nov 29, 2025

No findings