
# DiOShonored
**Dishonored (2012) on iPhone, from your own copy of the PC game.**
[](https://github.com/OMetaVR/DiOShonored/releases)
[](https://github.com/OMetaVR/DiOShonored/actions/workflows/build.yml)


[](LICENSE)
> [!IMPORTANT]
> **Unofficial fan project.** DiOShonored is not affiliated with, endorsed by or connected to Arkane Studios, Bethesda
> Softworks or ZeniMax Media. *Dishonored* and all related names, art and code are their property.
> **This repository contains no game code and no game data, and it never will.** To play you need your own legal copy of
> Dishonored for PC on Steam; the app runs that copy.
## What this is
DiOShonored runs the Steam (PC) release of Dishonored natively on iPhone. It is not an emulator and not a port of the game's
source code. It is a **static recompiler** plus a compatibility layer:
- **Recompiler** (`lifter/`, Rust): translates the game's 32-bit x86 Windows program (`Dishonored.exe` and its DLLs) into C,
which is compiled for the iPhone's ARM processor. This runs on *your* computer, on *your* files.
- **Runtime** (`runtime/`, C++): the parts of Windows the game expects (files, threads, memory, input, audio, Steam in offline
mode), and a Direct3D 9 to **Metal** renderer with ASTC texture transcoding and MetalFX upscaling.
- **iOS app** (`ios/`): imports the game files you copy onto the phone, checks them against the supported Steam build,
and starts the game. Controllers (tested with a Backbone One) and touch are supported.
### Why it is not piracy
| Distributed here | Not distributed, ever |
| --- | --- |
| The recompiler, the runtime, the iOS app shell, tools, docs | `Dishonored.exe`, its DLLs, or any code translated from them |
| An app shell IPA that cannot play anything by itself | Game data: packages, textures, audio, movies, saves |
The playable app contains code translated from the game's executable, so each player builds it from their own copy and keeps it
to themselves. The game data stays on the player's phone, copied from their own install. The app verifies the game files by
SHA-256 against the supported Steam build and refuses anything else.
## Status
Early beta. Tested on one device so far.
| | |
| --- | --- |
| **Device** | iPhone 13 (A15 Bionic, 4 GB), iOS 27.0.1, sideloaded with SideStore + LiveContainer, Backbone One controller |
| **Works** | Boot, intro movies, menus (Scaleform UI), New Game, mission briefings, loading into and playing the first mission |
| **Performance** | About 50 fps in the first mission at 1558x720 (MetalFX-upscaled to 2532x1170) while the phone is cool; GPU about 13-14 ms per frame. When iOS reports the phone as hot, the frame rate is held at a steady 30 by design (`frame_rate_cap` in `dish_settings.ini`: `auto`, `30`, `60`). Memory about 1.1-1.45 GB. Short hitches when new areas or effects load *(build dev12)* |
| **Render resolution** | 720 lines by default (best balance on A15-class phones), upscaled by MetalFX; set `render_height` in `DishonoredData/dish_settings.ini` (900 / 1080 / 1170 for sharper, at a GPU and memory cost) |
### Known issues
- **Saving** (new in this build): autosaves, quicksaves and options are written to `DishonoredData/SteamCloud/`. Dishonored keeps
its saves in Steam Cloud, so these are the same file names Steam uses: you can copy your own PC saves from
`Steam/userdata/