Run the digital bridge on Windows

The bridge launched its helper only through Wine. It now starts any
process, so on Windows it runs the helper directly. WineBridgeChannel is
renamed ProcessBridgeChannel.

WindowsControlSetup sets up the control side on Windows. The digital
dialog, AppSession, README and docs/digital-bridge.md describe the
Windows setup. publish-windows.sh builds a Windows release.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-23 21:56:47 +00:00
co-authored by Claude Sonnet 5.5
parent 0ad894bfae
commit c18d79ba5a
11 changed files with 211 additions and 27 deletions
+21 -3
View File
@@ -1,9 +1,9 @@
# MMTTY and 2Tone through Wine
# MMTTY and 2Tone through the bridge
MMTTY is a Windows program with no socket, pipe or file interface. N1MM does not
talk to it directly either: it hosts `XMMT.ocx`, a 32-bit ActiveX control that
starts `MMTTY.EXE` and exchanges window messages with it. A Linux process cannot
load that control, so Nonemm runs a small Windows program under Wine —
load that control, so Nonemm runs a small Windows program (under Wine on Linux) —
`bridge/nonemm-mmtty-bridge.exe` — which hosts the control and passes lines over
its standard input and output.
@@ -98,7 +98,25 @@ Three things cost a day between them, so they are written down:
message, closes the engine's windows, and kills the process if it is still
there five seconds later.
## Setting it up
## Setting it up on Windows
There is no Wine. `ProcessBridgeChannel` starts `nonemm-mmtty-bridge.exe`
directly, and the engine path goes to the bridge as it is.
The control must be registered once. The Register button in Config > Digital
does it with `WindowsControlSetup`, which runs the 32-bit `regsvr32` (the one in
`SysWOW64` on 64-bit Windows) on `XMMT.ocx` in place. Windows shows the
administrator prompt, because registering writes to `HKEY_CLASSES_ROOT`. The same
by hand, from an administrator prompt:
```bat
%WINDIR%\SysWOW64\regsvr32.exe bridge\XMMT.ocx
```
Do not move `XMMT.ocx` after that, or register it again. Nothing in this path
has been run on Windows.
## Setting it up under Wine
Config > Digital has a Register button. It does what the next paragraph
describes, in the prefix named in the same dialog, and writes the result under