Skip to content

Playport 0.3.0

Choose a tag to compare

@playportdev playportdev released this 05 Oct 10:57

Playport 0.3.0: 32-bit games

32-bit Windows games now run on your iPhone. Until now Playport ran only
64-bit games. 0.3.0 adds a full 32-bit runtime with Direct3D 9 graphics on Apple's
GPU, and Portal 2 is the first 32-bit game that plays: menus, test chambers,
both portals, sound, controller, saves and Steam Cloud. Everything runs locally on a non-jailbroken iPhone: no streaming, no remake,
no PC.

Highlights

🧩 32-bit Windows games

  • 32-bit (x86) games run next to 64-bit ones, from the same Library and the same
    Play button. Nothing to set up.
  • iOS keeps the lowest 4 GB of memory to itself, which is exactly where a 32-bit
    game has to live. Playport gives each 32-bit game its own 4 GB window higher up
    and translates every memory access on the fly, so the game never notices.

🎨 Direct3D 9 on the iPhone's GPU, through KosmicKrisp

  • Direct3D 9 runs on DXVK, then Vulkan, then Metal through KosmicKrisp, Mesa's
    Vulkan driver for Apple GPUs, ported to iOS for Playport.
  • 32-bit games pick Vulkan automatically. Game options show "Default · Vulkan".
  • KosmicKrisp keeps its compiled shaders on disk, so the second launch of a game
    reuses them instead of compiling again.

🌀 Portal 2

  • Plays at about 60 FPS at 720p. A 5-minute play with portals, tunnels, a death
    and a reload averaged 58.4 FPS.
  • A 95-minute session with saving and loading ran without a crash. After a long
    session the phone gets warm, and Portal 2 then runs at about 50 FPS.
  • Saves sync with Steam Cloud, so you can carry on where you left off on your PC.

⚡ Faster 32-bit games

  • x87 floating-point math, which older 32-bit games use heavily, now runs at the
    CPU's native 64-bit precision, as Valve's Proton does on ARM64. Portal 2's main
    thread does about 40 % less work and the CPU draws about 40 % less power, so the
    phone stays cooler and holds 60 FPS for longer.

Fixes and improvements

  • Controllers work in games that bring their own copy of XInput (Portal 2 does).
  • Steam Cloud: Portal 2's saves upload again, and a file Steam refuses no longer
    stops the whole sync.
  • Games that ask for Tahoma show their text: Playport now ships fallback Tahoma
    fonts.
  • A new opening animation while your stores load, and a launch that dives into the
    game's art. The game then fades in at its own size.
  • A game's art fills the screen on its page and during its launch.

Known limitations

  • Portal 2 is the only 32-bit game tested so far. Other 32-bit Direct3D 9 games use
    the same route, but expect rough edges. Please tell us how they run.
  • 32-bit games run only on Vulkan. Choosing DXMT for one, on its page or globally,
    stops it from starting.
  • Expect short hitches when a level loads and the first time you see a new effect.
  • In long sessions the iPhone heats up and lowers its clock speeds, and frame rates
    drop.

Install

Download Playport-0.3.0.ipa and sideload it with your own Apple ID, keeping the
increased memory limit and the JIT helper extension. If you have an earlier version,
install over it: your games, saves and Steam login stay. Bring your own games from
Steam.

The complete Corresponding Source of this exact build, the notices and the
rebuild instructions are attached as Playport-0.3.0-source.tar, NOTICES.tar
and INSTALL-REBUILD.tar. SHA256SUMS covers every file.

Built on willfaust/Madeira. Playport is GPL-3.0-or-later; every component keeps its
own licence.

Checksums

File sha256
Playport-0.3.0.ipa f87e4450a5d9bf1dc50f6056db6c6fae2659c322f39e51d38877f632ad37955d
Playport-0.3.0-source.tar 02f76539e83dffa933e83d049d3f490e855d9d7908faa0067bea4d3c7dfdb9e4

Built from commit 89b399741c3dd4342d1184428a2f663776460e09.