MetalSharp is an ARM64 app for Apple Silicon that bundles its own Wine runtime, DXMT Metal graphics support, Windows Steam setup, game detection, runtime bottles, logs, and launch diagnostics. Linux .deb packaging exists for Debian-based systems.
MetalSharp keeps state under ~/.metalsharp/:
~/.metalsharp/
├── runtime/wine/ MetalSharp Wine, DXMT, D3D/DXGI DLLs, shims
├── runtime/redist/ Optional user-supplied redistributables
├── prefix-steam/ Shared Windows Steam prefix and live Steam session
├── bottles/ Runtime bottle manifests, prefixes, logs, assets
├── games/ Prepared game payloads
├── sharp-library/ Imported Windows apps
├── shader-cache/ Per-game graphics caches
├── configs/ Pipeline/runtime rules
├── cache/ Steam/update cache
├── logs/ App, launch, crash, setup, migration logs
└── crashes/ Preserved crash reports
prefix-steam remains the shared Wine Steam prefix. Wine Steam stays alive as the background client/session owner for Steam games.
bottles is the runtime authority layer. Installer and Sharp Library bottles use their own prefixes. Steam game bottles use ids like steam_620 and preflight the actual shared Steam prefix. Env-dependent Steam routes launch the selected game executable directly through the chosen MTSP pipeline with the bottle prefix, route env, and SteamAppId/SteamGameId, while Wine Steam remains alive for Steamworks connectivity.
When Play is clicked, MetalSharp resolves a pipeline, syncs the bottle/runtime record, checks required components/assets, prepares DLLs/cache/env/logs, ensures Wine Steam is ready when needed, then launches through direct Wine/MTSP, Wine Steam, native macOS Steam, or native Mono/FNA.
| Mode | Purpose |
|---|---|
| M9 | D3D9 / 32-bit capable DXMT-family route |
| M10 | D3D10 to Metal |
| M11 | D3D11 to Metal |
| M12 | D3D12 to Metal |
| M32 | 32-bit Wine fallback |
| Steam | Windows Steam in Wine |
| MacOS Steam | Native macOS Steam |
| Wine | Plain Wine custom-app fallback |
| Native macOS | Native Mono/FNA/XNA path |
Sharp Library manages Windows apps, demos, launchers, and installers. Use Install Windows Program for standalone .exe files, MSI packages, launcher bootstrapper apps, .NET installers, WebView apps, Java launchers, and game installers.
Installer bottles classify the program, apply known launcher recipes where possible, launch it with the right profile, keep per-bottle logs, scan for installed app candidates, and import detected apps back into Sharp Library with their bottle_id.
Use Logs and Runtime Doctor when something fails. Doctor checks common blockers like Wine Mono, Gecko, .NET, VC runtime, DirectX June 2010, WebView2, core fonts, runtime profile, app detection, launch state, and redistributable assets.
Upgrades preserve setup.json, Steam settings/cache, prefix-steam, games, sharp-library, bottles, and Steam game compatdata.
Get the latest DMG from Releases, drag MetalSharp into /Applications, and open it.
Linux builds:
cd app
npm run deb
npm run deb:docker- macOS DMG: Apple Silicon Mac, macOS 14 or newer
- Linux
.deb: x64 Debian/Ubuntu withtar,curl,zstd, and Wine - About 2 GB free space
- How to Use MetalSharp
- Launch Architecture
- Wine Architecture
- Supported Games
- Releases
- Discussions
- Issues
MIT