Technische Details
Für alle, die es genau wissen wollen — und für Supportanfragen. Nichts davon musst du verstehen, um Interprex zu benutzen.
Aufbau
Interprex ist eine native SwiftUI-Anwendung für macOS. Sie erfindet nichts neu, sondern richtet bewährte freie Software so ein, dass sie ohne Handarbeit funktioniert:
| Schicht | Was | Woher |
|---|---|---|
| Oberfläche | Interprex (SwiftUI, arm64, Hardened Runtime) | dieses Projekt |
| Windows-Schnittstellen | Wine (CrossOver-Zweig) | winecx-dist, aus CodeWeavers-Quellen |
| DirectX → Metal | wined3d ab Werk, optional D3DMetal | Wine bzw. Apple GPTK |
| x86 → ARM | Rosetta 2 | macOS |
| Spieleplattform | Steam-Client für Windows | Valve, zur Laufzeit geladen |
Wine ist kein Emulator
Ein Emulator ahmt fremde Hardware nach. Wine tut etwas anderes: Es implementiert die Windows-Schnittstellen neu. Ruft ein Spiel eine Windows-Funktion auf, landet der Aufruf bei Wines eigener Umsetzung, die ihn auf macOS-Aufrufe abbildet.
Daraus folgt zweierlei: Du brauchst keine Windows-Lizenz, und es gibt keinen Emulations-Aufschlag auf jede Instruktion. Wine steht unter der LGPL 2.1; Interprex liefert es unverändert aus. Quellen und Lizenztexte stehen unter Lizenzen.
DirectX auf Metal
Zwei Wege, die Interprex unterstützt:
| wined3d (ab Werk) | D3DMetal (optional) | |
|---|---|---|
| Herkunft | Teil von Wine | Apple Game Porting Toolkit |
| Weg | DirectX → OpenGL → Metal | DirectX → Metal direkt |
| Geschwindigkeit | läuft überall, deutlich langsamer | erheblich schneller, besonders DirectX 12 |
| Mitgeliefert | ja | nein — Evaluierungslizenz, Eigenimport nötig |
DXVK ist keine Alternative, auch wenn es unter Linux der Standardweg
ist. Getestet mit DXVK 3.0.2 und dem macOS-Zweig 1.10.3: Beide scheitern schon bei der
Geräteerstellung mit
Device does not support required feature 'geometryShader'. Metal hat keine
Geometry-Shader-Stufe, MoltenVK kann sie deshalb nicht melden, und DirectX verlangt sie
ab Feature-Level 10_0. Das ist keine Konfigurationsfrage.
Warum die Bildrate niedriger ist als unter Windows
Der Spielcode selbst ist für x86-Prozessoren übersetzt und läuft über Rosetta 2 auf dem ARM-Chip. Diese Übersetzung kostet Rechenzeit auf der CPU — und bei vielen Spielen liegt dort der Flaschenhals, nicht bei der Grafik.
Das ist der Grund, warum Interprex eine Leistungsanzeige mit Flaschenhals-Einschätzung hat statt eines bloßen Bildratenzählers. Die beiden Fälle verlangen genau entgegengesetzte Maßnahmen:
| Messung | Heißt | Was hilft |
|---|---|---|
| GPU über 85 % | Grafikgrenze | Auflösung senken, Upscaling an, Schatten reduzieren |
| GPU unter 60 %, mehrere Kerne ausgelastet | CPU-/Rosetta-Grenze | Sichtweite, Physik und Objektdichte senken — Auflösung bringt nichts |
Deshalb kann ein Spiel bei niedrigerer Auflösung gleich langsam bleiben: Wenn die CPU limitiert, ändert weniger Auflösung schlicht nichts.
Energiemodi
Interprex setzt Bildratengrenze, Texturspeicher und Upscaling aus dem gewählten Modus — aber der Systemzustand überstimmt den Wunsch:
- Stromsparmodus des Systems an → effizient
- Wärmezustand kritisch → effizient
- Wärmezustand ernst und Modus „Volle Leistung“ → ausgewogen
- Akku unter 20 % → effizient
Der Eingriff in den Steam-Client
Steams Oberfläche ist ein eingebauter Chromium-Browser. Dessen Zeichenprozess läuft in einem eigenen Prozess und malt von dort in das Fenster des Hauptprozesses. Unter Wine geht das nicht: Ein Prozess kann nicht in das Fenster eines anderen Prozesses zeichnen. Alle Aufrufe melden Erfolg, die Pixel kommen nie an — das Fenster bleibt schwarz.
Interprex löst das, indem es dem Hilfsprogramm steamwebhelper.exe ein kleines
Startprogramm voranstellt, das den Schalter --in-process-gpu setzt. Die
Originaldatei bleibt daneben liegen und wird bei Bedarf automatisch zurückgespielt.
Warum Anti-Cheat nicht geht
Easy Anti-Cheat und BattlEye laden im Kernelmodus einen Windows-Treiber, um das laufende System zu überwachen. Wine implementiert Windows-Schnittstellen im Benutzermodus — es gibt keinen Windows-Kernel, in den sich ein solcher Treiber laden ließe.
Das lässt sich nicht durch Einstellungen, eine andere Wine-Fassung oder eine neuere macOS-Version umgehen. Selbst wenn es technisch ginge, würden die Hersteller es als Umgehungsversuch werten. Prüfe vor dem Kauf auf ProtonDB, ob ein Titel außerhalb von Windows läuft — die Linux-Bewertungen gelten sinngemäß.
Wo Interprex was ablegt
| Pfad | Inhalt |
|---|---|
~/Library/Application Support/Interprex/WineCX | Die Wine-Installation. Austauschbar gegen eine eigene Fassung. |
~/Library/Application Support/Interprex/Bottles | Die Windows-Umgebungen samt Steam und Spielen. |
~/Library/Application Support/Interprex/Logs | Ein Protokoll je Vorgang. Grundlage jeder Supportanfrage. |
~/Library/Preferences/com.hnbdev.Interprex.plist | Einstellungen, Zustimmungen, Unterstützer-Schlüssel. |
Welche Verbindungen Interprex aufbaut
| Ziel | Wann | Wozu |
|---|---|---|
github.com | Ersteinrichtung | Wine herunterladen |
cdn.akamai.steamstatic.com | Ersteinrichtung | Steam-Installationsprogramm |
interprex.de/appcast.json | höchstens täglich | Aktualisierungsprüfung (abschaltbar) |
interprex.de/sponsors.json | höchstens täglich | Anzeigenkarte (abschaltbar) |
interprex.de/api/ping | nur mit Einwilligung | anonyme Nutzungsstatistik (Standard: aus) |
www.xbox.com | nur beim Öffnen des Xbox-Fensters | Cloud-Streaming |
Mehr nicht. Kein Werbenetzwerk, keine Gerätekennung, kein Zählpixel — Einzelheiten in der Datenschutzerklärung.
Diagnosebericht
Unter Diagnose → Technische Details steht alles, was für eine Supportanfrage nötig ist: Chip, Kerne, Arbeitsspeicher, macOS-Fassung, Grafikübersetzung, Energiemodus und Pfade. Ein Knopf kopiert das als Text.
Schick den Bericht zusammen mit dem Protokoll und dem Namen des Spiels an info@hnbdev.com.