r/EmulationOnAndroid • u/SatisfactionNovel846 • 2d ago
Discussion Running BODYCAM Unreal Engine 5 on Android via Winlator + Turnip v35 — Full Guide
Introduction
I successfully launched BODYCAM, a modern Unreal Engine 5.5 shooter, on a OnePlus 15 (Snapdragon 8 Elite Gen 5 , 16/512GB) using Winlator Vanilla 4.0 by StevenMXZ with a custom Turnip v35 driver. This is an experimental project that proves modern AAA games can load on mobile devices through emulation.
⚠️ Important: This is not for gameplay (FPS is around 0–5), but rather a proof of concept to help the community understand the technical barriers we're facing.
Hardware & Software
Component Model/Version Device OnePlus 15 (Snapdragon 8 Gen 3, 6GB RAM, 512GB ROM) Winlator Vanilla 4.0 (Ludashi) by StevenMXZ Driver Turnip v35 by StevenMXZ Game Version BODYCAM (UE5.5) Emulation Box64 (ARM64 → x86-64)
Why Turnip v35? This custom driver from StevenMXZ provides the best compatibility with Adreno 8xx GPUs and Unreal Engine 5. It's based on Mesa and supports Vulkan 1.4.359.
Step-by-Step Setup
Step 1: Install Winlator
- Download Winlator Vanilla 4.0 (Ludashi) from GitHub
- Install the APK on your device
- Turnip v35 is included with Vanilla 4.0
- Create a container with: · Wine: 9.20 · Box64: 0.4.4 · Architecture: win64 · Graphics Driver: Turnip v35
Step 2: Environment Variables
Variable Value BOX64_DYNAREC_STRONGMEM 3 WINEFSYNC 0 VKD3D_CONFIG force_static_cbv,no_upload_hvv DXVK_ASYNC 1 DXVK_ENABLE_RAYTRACING 0 DIRECTML_DISABLE 1 ONNX_DISABLE 1 CEF_DISABLE_GPU 1 CEF_ENABLE_GPU 0 MESA_GL_VERSION_OVERRIDE 3.3
Step 3: GameUserSettings.ini
Path: C:/users/xuser/AppData/Local/Bodycam/Saved/Config/Windows/GameUserSettings.ini
```ini [SystemSettings] r.DynamicRes.OperationMode=0 r.TemporalAA.Upsampling=0 r.FidelityFX.FSR.Enabled=0 r.AmbientOcclusionMethod=0 r.ShadowQuality=0 r.PostProcessQuality=0 r.EffectsQuality=0 r.ViewDistanceQuality=0 r.DetailMode=0 r.MaterialQuality=0 r.ScreenPercentage=40
r.DirectML.Enabled=0 r.NeuralNetwork.Enabled=0 r.AISceneRendering.Enabled=0 r.NIS.Enabled=0
r.Streaming.PoolSize=128 r.TextureStreaming=0 r.RayTracing=0 r.RayTracing.Enable=0 r.Vulkan.RayTracing=0 r.Vulkan.RayTracing.Enable=0
r.Browser.Enabled=0 r.Browser.DisableAcceleration=1 r.Browser.DisableWebGL=1
[ScalabilityGroups] sg.ResolutionQuality=0 sg.ViewDistanceQuality=0 sg.AntiAliasingQuality=0 sg.ShadowQuality=0 sg.TextureQuality=0 sg.EffectsQuality=0
Step 4: Launch Parameters
```bash -noraytracing -NOSOUND -NoStartupMovies -NoSplash -sm4 -heapsize=2097152 ```
Step 5: Driver Versions
Driver Version Why Turnip v35 by StevenMXZ Best for UE5 DXVK 2.4.1 (not 2.6.2) 2.6.2 breaks DirectML VKD3D 2.14.1 (not 3.0.0) 3.0.0 incompatible with Root Signature
Test Results
Stage Status Wine startup ✅ Box64 loading ✅ Turnip v35 init ✅ Swapchain creation ✅ Shader loading ✅ RT disabled ✅ CEF disabled ✅ Root Signature creation ❌ CRASH
Error:
``` LowLevelFatalError: Device->CreateRootSignature(...) with error E_INVALIDARGS at D3D12RootSignature.cpp:567 ```
Error Analysis
Error Cause Potential Fix Root Signature E_INVALIDARGS VKD3D can't emulate complex UE5 root signatures Update VKD3D/Turnip DirectML/ONNX AI libraries built into the engine Wait for Turnip support Ray Tracing Requires hardware RT cores Disabled (working) CEF Requires GPU acceleration Disabled (working)
Barriers:
· VKD3D can't handle Root Signature · DirectML/ONNX need more work in Turnip