1) install wine. Normally, you would do `brew install --cask --no-quarantine wine-stable`; however, if you managed to update to ventura 13.3, you will need wine 8.4 or newer, so `brew tap homebrew/cask-versions && brew install --cask --no-quarantine wine-staging`.
2) if you installed brew without `--no-quarantine`, try launching it now. The point is to appease Gatekeeper, so launching it in the future won't fail. It will also create a wineprefix, if you don't have one.
3) save your winbox64.exe binary somewhere. M1 doesn't support 32-bit mode (not even ARM one), so make sure it is 64-bit one.
4) launch it; wine64 /path/to/your/winbox64.exe. It will be handled by Rosetta automatically.
It should work now. In the past, with some older wine version, it failed, because some wine script called 32-bit binary somewhere down the chain; since I don't remember what version it was and what exactly it did, suffice to say that it was enough to add '64' in the script to the name of the binary called. With wine 8.0 and newer, it should not be a problem.
There are some fine details you can make it slightly better:
5) package it into MacOS app. Create the basic bundle structure (`mkdir -p WinBox.app/Contents/{MacOS,Resources}`), put:
#!/bin/bash
/Applications/Wine\ Staging.app/Contents/Resources/wine/bin/wine64 "$(dirname "$0")/../Resources/winbox64.exe
into `Contents/MacOS/Winbox` and make it executable.Put winbox64.exe into `Contents/Resources`, some nice icon into `Contents/Resources/Icon.icns` (if you google, you can find winbox icon in the right format), and some basic metadata into `Contents/Info.plist`:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>WineProgramPath</key>
<string>winbox64.exe</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>WinBox</string>
<key>NSHumanReadableCopyright</key>
<string>© MikroTik</string>
<key>CFBundleIdentifier</key>
<string>com.MikroTik.WinBox</string>
<key>CFBundleName</key>
<string>WinBox</string>
<key>CFBundleVersion</key>
<string>3.37.0</string>
<key>CFBundleShortVersionString</key>
<string>3.37.0</string>
<key>CFBundleIconFile</key>
<string>Icon.icns</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
</dict>
</plist>
(I don't remember where I copied this from).6) You will have a problem saving a session state. This is again gatekeeper; if I run winbox from a terminal with developer tools privilege, it will work. If I run it as the above app package, it will silently fail at saving. You can play around with granting privileges, but I prepared my sessions throught the terminal launch instead, and by running it via app package, they are read only, so I don't accidentally rearrange something.