A (BETA)(Mostly Vibecoded, Cringe, I know) native macOS launcher for Titanfall 2 + Northstar, built with SwiftUI and the Liquid Glass design system.
Draconis is not a Wine front-end of its own — it is a polished native launcher that drives CrossOver underneath. If you already have a CrossOver bottle with Titanfall 2 + Northstar installed, Draconis detects it automatically and just launches the game. If you don't, the onboarding can create the bottle for you.
Draconis is not notarised by Apple. The first time you launch it macOS will refuse with one of these messages:
"Draconis" cannot be opened because Apple cannot check it for malicious software.
"Draconis" is damaged and can't be opened. You should move it to the Trash.
This is normal for any open-source macOS app that isn't paying for an Apple Developer ID. Pick whichever route is easiest for you:
- In Finder, right-click (or Control-click)
Draconis.app. - Choose Open.
- macOS shows the same warning but this time with an Open button. Click it.
- From now on Draconis launches normally with a double-click.
- Try to launch Draconis normally (it'll be blocked).
- Open System Settings → Privacy & Security.
- Scroll to the Security section — there will be a line "Draconis was blocked from use…" with an Open Anyway button.
- Click it and confirm.
If macOS quarantined the download and shows the "damaged" message, strip the quarantine flag:
xattr -dr com.apple.quarantine /Applications/Draconis.appThen launch normally.
- One-click launch of Northstar or vanilla Titanfall 2 from any detected CrossOver bottle
- Guided onboarding with two routes for first-time setup:
- Automatic — Draconis hands CrossOver the Titanfall 2 crosstie and polls every 5 s until the bottle is ready
- Manual — open CrossOver yourself and follow its install profile (Steam, EA app, or Epic Games inside the bottle)
- Live bottle location — reads CrossOver's
BottleDirpreference from~/Library/Preferences/com.codeweavers.CrossOver.plist, so a custom bottles folder is picked up automatically - Northstar auto-updater — checks for a new release on every launch and updates automatically when Northstar is already installed. If Northstar isn't installed yet, an Install button is shown instead
- Maxima integration (optional, beta) — installs Maxima-Draconis and registers MaximaHelper so Northstar can bypass the EA Desktop authentication requirement. Enable it from the EA Launcher toggle on the Play tab
- Thunderstore mod browser with install / enable / disable / uninstall support
- Server browser backed by the Northstar masterserver
- Liquid Glass UI — uses macOS Tahoe's native
.glassEffect()rather than faking blur with.ultraThinMaterial
- macOS Tahoe (26) or later
- CrossOver installed at
/Applications/CrossOver.app - A legal copy of Titanfall 2 (Steam works end-to-end today; EA app + Epic are coming soon in the auto installer)
The bundled Titanfall2.tie install profile may be shown as untrusted or unverified inside CrossOver, even though it comes directly from CrossOver's own database. This is a display issue — the profile is genuine and safe to run. Draconis includes this .tie file verbatim from CrossOver; if you are ever uncertain you can verify by opening CrossOver → Install a Windows Application → search "Titanfall 2" and comparing the profile.
On first launch (or when no Titanfall 2 bottle is detected) Draconis opens an onboarding sheet:
- Pick a mode — Automatic or Manual.
- Automatic → pick a frontend (Steam available today; EA app and Epic are greyed out) → click Start install. Draconis opens the bundled
Titanfall2.tiewith CrossOver and pollsBottleDirevery 5 s. Three stages are shown:- Bottle is being created and launcher is installing
- Launcher is ready — log in and install Titanfall 2, wait for 100%
- Titanfall 2 detected — ready to launch
- Manual → Draconis begins polling for the bottle as you work in CrossOver. The CrossTie picks Steam by default, but you can switch to the EA app or Epic Games on the same CrossOver screen. Live progress steps update as each piece appears.
- Set up Maxima (optional) from the EA Launcher toggle on the Play tab once Titanfall 2 is installed.
Maxima-Draconis is an open-source replacement for EA Desktop that runs inside the CrossOver bottle. It handles EA's authentication handshake so Northstar can launch without the EA app being installed.
This feature is in beta. Enable it with the EA Launcher (Maxima) toggle on the Play tab.
When Maxima is enabled:
- Set up Maxima downloads
MaximaSetup.exefrom the latest Maxima-Draconis release, installs it silently inside the bottle, and registersMaximaHelper.appas the macOS handler forqrc://OAuth redirects. - The installed version is tracked. When a newer release is available an Update Maxima button appears — Maxima does not auto-update (unlike Northstar).
- Launches use
steam.exe -applaunch 1237970 -northstar -noOriginStartup -multipleso Northstar doesn't try to start Origin (which doesn't exist in Wine). - Vanilla mode uses
NorthstarLauncher.exe -vanillainstead ofTitanfall2.exedirectly, which avoids auth issues when Maxima or the EA launcher isn't running.
Known limitation: if your Titanfall 2 EA license isn't linked to your EA account (Steam-only), Maxima will warn and attempt a passthrough. Linking accounts at ea.com resolves this permanently.
Draconis resolves the bottles location from CrossOver's own preferences:
~/Library/Preferences/com.codeweavers.CrossOver.plist → BottleDir
falling back to ~/Library/Application Support/CrossOver/Bottles when the key is absent or unusable. Inside each bottle it scans well-known install roots first, then falls back to a depth-limited recursive sweep:
<BottleDir>/<bottle>/
drive_c/Program Files (x86)/Origin Games/Titanfall2/
drive_c/Program Files (x86)/Steam/steamapps/common/Titanfall2/
drive_c/Program Files (x86)/EA Games/Titanfall2/
drive_c/Program Files/Titanfall2/
…
A bottle is marked Northstar-ready when NorthstarLauncher.exe sits next to Titanfall2.exe. The installed Northstar version is read from ns_version.txt (written by the Northstar installer) and compared against the latest GitHub release on every launch — Draconis updates automatically when a newer version is available. Launches go through CrossOver's cxstart CLI so the bottle environment is set up correctly.
# Generate Draconis.xcodeproj and open in Xcode
./bootstrap.sh --open
# Or build from the command line
xcodebuild -project Draconis.xcodeproj \
-scheme Draconis \
-configuration Release \
-derivedDataPath buildThe build output is build/Build/Products/Release/Draconis.app.
See BUILD.md for the full build, signing, and notarisation walkthrough.
Draconis/
├── App/ DraconisApp.swift, AppEnvironment.swift
├── Models/ WineBackend, NorthstarInstall, Mod, Server
├── Services/ CrossOverDetector, WineBackendManager, NorthstarLauncher,
│ NorthstarUpdater, ThunderstoreClient, ServerBrowserClient,
│ SteamInstaller, BottleInstaller, MaximaService,
│ ProcessRunner, DownloadCoordinator, PathResolver, DebugLog
├── Views/ ContentView, PlayView, ModsView, ServersView,
│ SettingsView, OnboardingView, ConsoleView, Components/
└── Resources/ Info.plist, Draconis.entitlements, Assets.xcassets,
Draconis.icon, Titanfall2.tie
Made with contrib.rocks.
- The Northstar team at R2Northstar
- Viper by 0neGal — the original launcher that inspired Draconis
- CodeWeavers for CrossOver and the signed Titanfall 2 install profile
GPL-3.0-or-later. Draconis is a derivative work in spirit — but not in code — of the Viper launcher, which carries the same licence.