Early release · iOS 27

PC games on your iPhone.

Playport runs x86-64 Windows games on a stock, non-jailbroken iPhone. Install a game from your library, pick up a controller and press Play. It runs on the phone's own CPU and GPU: no PC, no cloud, no stream.

No jailbreak No streaming Open source, GPLv3
The Playport logo: a porthole with a play button behind the glass

The app

Your library, in your hands.

A gamepad-first app for the games you own: browse, download and play, all on the phone.

Playport's Home page: Continue playing Portal 2, a download in progress, and recent games
HomePick up where you left off, and watch your downloads.
Playport's Library page: installed, downloading and not-installed Steam games in a grid
LibraryEverything you own on Steam, installed or not.
Hollow Knight's game page in Playport: Play, achievements, options, play time and cloud saves
Game pagePlay, achievements, per-game options and cloud saves.

Why Playport

The real games, not a stream of them.

A Windows .exe starts on the iPhone as it would on a PC, translated and rendered on the device, with a controller in your hands.

Native on the phone

Wine, the FEX x86-64 translator and DXMT run together inside one iOS app. Direct3D 10 and 11 render straight to Metal through DXMT.

Vulkan, with KosmicKrispEXPERIMENTAL

A Vulkan backend on KosmicKrisp, Mesa's Vulkan driver for Metal, opens the door to Direct3D 12 through vkd3d-proton, and runs Direct3D 8 to 11 through DXVK. Under active development.

Made for a controller

A landscape, gamepad-first interface and an in-game menu to pause, resume or quit. Controllers reach the game as XInput.

More than a repackage

Over a hundred of our own patches on top of our dependencies: performance and compatibility work (faster FEX translation for Unity games, lossless texture compression kept on in DXMT, geometry shaders and transform feedback in KosmicKrisp, feature level 12_0 in vkd3d-proton), dozens of bug fixes, and the diagnostics behind them. Each one is a reviewable patch with the evidence for it.

Your library

Sign in to your store, browse what you own and download it straight to the phone. Steam works today; GOG and Epic Games are planned.

JIT built in

The app carries its own JIT helper, so every Play works from the phone alone after a one-time pairing.

On the latest upstreams

The ports are carried forward onto current releases of Wine, Proton, FEX and DXMT, so fixes from upstream arrive here too.

No Mac needed

The whole app is built, signed and installed from one Linux machine, with a free Apple ID.

How it works

A Windows PC, folded into one app.

iOS allows no second process and no JIT without a debugger, so Playport runs Wine's whole multi-process design as threads of a single app, with its own JIT helper attached for every launch.

x86-64 code
Game.exex86-64 Windows
FEXx86-64 to ARM64, JIT
Apple siliconthe phone's CPU
Windows API
Win32 callsfrom the game
WineARM64EC, native code, Proton 11 commits
iOSfiles, input, sound
Direct3D 10 and 11
D3D10, D3D11
DXMTDirect3D to Metal
Metalthe phone's GPU
Vulkan EXPERIMENTAL
D3D12and D3D8 to 11
vkd3d-proton, DXVKDirect3D to Vulkan
KosmicKrispVulkan on Metal
Metalthe phone's GPU

All of it is one iOS process: the wineserver is a thread, each Windows program a pseudo-process with its own PEB, and the translated code lives in a JIT pool the app's own helper unlocks. Read the architecture.

Built on Madeira, kept current

On the latest upstreams.

Playport is built on willfaust/Madeira, which first ran Wine, FEX-Emu and DXMT as one process on iOS. Where Madeira stays on its own forks, Playport carries those ports forward onto current releases.

ComponentMadeiraPlayport
Wine11.4 forkWineHQ 11.18 + Valve's Proton 11 Wine
FEX2607 forkFEX 2609.1
DXMTolder forkDXMT main
VulkannoneKosmicKrisp from Mesa main EXPERIMENTAL

Get started

Three steps to Play.

No computer needed after you install it. The app walks you through the rest.

  1. Download

    Get the latest .ipa from the project's Releases.

  2. Sideload

    Install it the usual way, for example with SideStore.

  3. Pair and play

    Open Playport. It pairs its JIT helper once, signs you in to your store, and you are ready.

Good to know

Early, and honest about it.

Playport is young. Here is what to expect.

On the phone

Running on an iPhone, right now.

Screenshots from an A19 Pro iPhone on iOS 27.0, with Metal's performance HUD on. Every frame is rendered on the phone.

The Witcher 3: Geralt in Kaer Morhen, with Metal's HUD showing about 36 frames per second through DXMT's Direct3D 11
The Witcher 3: Wild HuntDirect3D 11 through DXMT to Metal, about 36 fps.
Hollow Knight: the Knight resting on a bench in Dirtmouth, with Metal's HUD showing 120 frames per second at 2736 by 1260
Hollow KnightAt the screen's full 2736×1260, a steady 120 fps.