FH2 Recomp phone requirements
What FH2 Recompiled needs from your phone’s chip, GPU driver, memory and storage, how Adreno, Mali and Xclipse fare, and what frame rates have been measured.
- Android 8.0+ ARM64
- Vulkan 1.1
- 4 GB RAM (6 GB rec.)
- ~8 GB storage

FH2 Recompiled runs the game’s own code natively, but the Xbox 360 GPU is still the heavy part, so the graphics chip decides most of what you get. These numbers come from the project’s README, the measured tables in its release notes up to v0.4.5 and user reports in its issue tracker.
Minimum requirements for Android
| Component | Requirement |
|---|---|
| Android | Android 8.0 or later on a 64-bit ARM (ARM64) processor. There is no 32-bit build. |
| Graphics | A GPU with Vulkan 1.1 or later. Adreno phones can load a Turnip driver; Mali and Xclipse run with more open reports. |
| Memory | 4 GB of RAM or more, 6 GB or more recommended. The vertex cache grows to 192 MB on phones with 8 GB or more. |
| Storage | About 8 GB for the game files, plus 109.5 MB for the APK. A disc image can be read in place, with no extraction. |
| Game | Your own Forza Horizon 2 for Xbox 360, USA edition (Title ID 4D530AA4), from your own disc. Other editions are untested. |
| Native renderer | The translated shader library fh2_shaders.nfsp, built on a Linux PC from your own game files. Without it, use the emulated renderer. |
The launcher tests an imported GPU driver with Vulkan before it can be chosen, and warns before playing when the GPU cannot run the emulated renderer.
Snapdragon, Turnip and Adreno drivers
Adreno is the best-tested family. On Adreno 6xx and 7xx a Mesa Turnip build loaded through Performance > GPU driver is often faster than the phone’s own driver; the Moto G9 Play figures use Turnip “Mr. Purple T30”, the S23 Ultra ones the Qualcomm 840 driver. 0.4.2 fixed striped cockpit cameras and faceted car paint on Adreno with the native renderer. One Poco F6 (Adreno 735) player got a black screen after the intro with the system driver and could play with Turnip Gen8 (#2).
Measured frame rates
The release notes measure the same scene before and after each change on the two test phones:
| Release | Test | Result | Note |
|---|---|---|---|
| 0.1.0 | Snapdragon 8 Gen 2 phone, races | about 5–17 FPS | First preview, emulated GPU |
| 0.3.0 | S23 Ultra (Adreno 740), parked, 100% | ~21–26 → ~48–61 FPS (avg ~53) | No small read-backs, vertex cache |
| 0.4.0 | S23 Ultra, parked, uncapped | 48.4 → 49.8 FPS; ~69 after a camera change | Ring cost per draw −18% |
| 0.4.0 | Moto G9 Play (Adreno 610), Turnip, 12% | 13.8 → 14.1 FPS | 33% + FSR gives the same FPS with a better image |
| 0.4.2 | S23 Ultra, native renderer | 43.4 → 46.1 FPS (~+6%) | Recycled textures, lighter ring thread |
| 0.4.2 | Moto G9 Play, native | median 16.4 → 17.1 FPS (~+4%) | Draw recording −21% |
Phones reported so far
From the release notes and user reports; your settings and driver change the numbers a lot.
| Phone | Chip · GPU | FPS | Source |
|---|---|---|---|
| Galaxy S23 Ultra | Snapdragon 8 Gen 2 · Adreno 740 | ~46–53 FPS parked | Developer test phone |
| Moto G9 Play | Snapdragon 662 · Adreno 610 | ~14–17 FPS | Developer test phone, Turnip |
| Oppo A78 4G | Snapdragon 680 · Adreno 610 | ~23 FPS | User report, Turnip T30, 50% and low detail (#99) |
| Exynos 1480 phone | Xclipse 530 | 27–30 FPS | User report with shader stutter (#57) |
| Galaxy A17 | Mali-G57 MC2 | CPU fix in 0.4.3 | FSR on the output costs ~30 ms a frame here |
| Poco X6 Pro | Dimensity 8300 · Mali-G615 | Freeze fixed in 0.4.1 | Image froze after ~20 s before |
Mali, Xclipse and two-big-core chips
Mali phones received most of the fixes: the frozen image after ~20 s (0.4.1, Poco X6 Pro), reflection-cube passes that cost 8–30 ms a frame (0.4.2), and the core layout of chips with two big cores, where v0.4.2 had squeezed the whole game onto one core (0.4.3: Helio G85–G99, Snapdragon 765G, Dimensity 700/810, Exynos 1280). On weaker Mali GPUs such as the Mali-G57 MC2, FSR scaling on the output can cost about 30 ms a frame: try scaling Off or Bilinear.
Linux and Steam Deck
The Linux x86-64 build has no download; you build it from source. The build machine needs Linux (developed on Ubuntu and Pop!_OS), Clang 20, CMake 3.25+, Ninja, Python 3.8+ and Git, about 20 GB of free disk and 12 GB of RAM or more, because the generated code is large. To make the Android APK as well: Java 17+, the Android SDK with NDK 28.2.13676358 and CMake 3.30.5. The project has published no Steam Deck results.
A controller to play with
Touch controls work, but racing is easier with a pad. Any Bluetooth or USB gamepad is read as an Xbox 360 pad: an Xbox Wireless Controller matches the game’s own button prompts, a DualSense pairs over Bluetooth, and the 8BitDo Ultimate 2 Wireless and GameSir Cyclone 2 work as standard pads. See controller and touch setup.
As an Amazon Associate, this site earns from qualifying purchases. Controller links go to Amazon; this site is not connected with the project or the controller makers.



Frequently asked questions
What are the FH2 Recompiled requirements?
Android 8.0 or later on an ARM64 processor, a GPU with Vulkan 1.1 or later, 4 GB of RAM (6 GB or more recommended) and about 8 GB of free storage for your game files, plus your own Forza Horizon 2 for Xbox 360, USA edition.
Will it run on my Snapdragon phone?
Adreno GPUs are the best tested: the developer uses a Galaxy S23 Ultra (Adreno 740) and a Moto G9 Play (Adreno 610), and Adreno phones can load faster Turnip drivers. Expect playable but low frame rates on 6-series chips and 40–50 FPS on flagship 8-series ones with the native renderer.
Does it work on Mali (MediaTek, Tensor) GPUs?
Yes, with more open reports. 0.4.1 fixed the image freezing after about 20 seconds on Mali, and 0.4.3 fixed slow phones with two big CPU cores such as Helio G85–G99 and Dimensity 700/810. Black screens and freezes when picking the first car are still reported on some Dimensity 7300 and Tensor phones. Turnip drivers do not apply to Mali.
Is it limited by the CPU or the GPU?
Mostly by the GPU emulation. The release notes show the ring thread, which turns the game’s GPU commands into Vulkan, busy 94–100% of the time, with resolve copies a large share of it; the native renderer and the 0.4.x performance work target exactly that. The recompiled game code itself is native ARM64.
Can I run it on a Steam Deck or Linux PC?
Only by building it yourself: the Linux x86-64 version has no download. Building needs Linux with Clang 20, CMake, Ninja, about 20 GB of disk and 12 GB of RAM. No Steam Deck test has been published.
How much storage does it need?
About 8 GB for the game files, plus 109.5 MB for the APK and room for the pipeline cache and logs. Reading the .iso in place avoids keeping a second, extracted copy.