Running The Witcher 3 at Speedrun Quality on Android

Most people try to stream or cast the PC version onto their phones and call it a day. That approach adds latency that makes actual speedrunning impossible. What actually works involves a different stack altogether. I spent about three months last year getting a sub-2-hour full game run completed on a Samsung Galaxy S22, so I learned what breaks and what doesn't. Here is how it works in practice. You need a host machine running the speedrun-modded version of The Witcher 3, and a client device (the phone) that receives and displays the stream. The critical part is the modded build, because the vanilla game has hard-coded constraints that ruin any attempt at a fast run. The most common modifications include skipping all cutscenes, enabling the debug console for position warps, and removing loading screen triggers where possible. I use moonlight streaming from a Windows PC to the phone. Moonlight gives me around 8 milliseconds of input latency when both devices are on the same 5GHz Wi-Fi network, or even better over a direct ethernet connection using a USB-C to ethernet adapter. NVIDIA GameStream works too if you have an RTX card, but it caps at 1080p 30fps, which is unusable for speedrunning. Moonlight runs at 4K 60fps with zero compression artifacts because it streams the already-encoded output from the PC GPU.

The PC side runs a patched executable. The standard patches people use come from the speedrun.com approved mods list. The key ones are: NoCutscene (removes all cinematic clips), SkipLoadingScenes (uses async load tricks to bypass transition screens), and the Glitchless position-warp scripts that let you skip entire areas by manipulating collision boundaries. I typically run the game at 1920x1080 windowed borderless on the PC to minimize VRAM usage so the stream bitrate can be higher on the phone side. On the phone, you need a controller. Touch controls are not viable here. I use an Xbox Series controller paired via Bluetooth directly to the Samsung. The input delay is acceptable because moonlight sends controller data back to the PC in under 5ms. A Razer Kaira Pro headset connected to the phone lets me hear game audio without latency problems that would throw off movement input timing. Audio sync is more important than people realize. If your audio is delayed by more than 50 milliseconds relative to the video, your muscle memory gets confused and you start mistiming jumps and glides. One specific problem I ran into that almost ended my run was thermal throttling on the phone after about 45 minutes of streaming. The S22 starts dropping frame presentation on the phone side around 47°C, which causes visible stutter that ruins frame-perfect movements. The workaround was simple but annoying: I removed the phone case, placed a small USB fan facing the back of the phone, and lowered the moonlight stream resolution to 1440p instead of 4K. The reduction in resolution dropped the phone's GPU load significantly and kept temperatures stable around 41°C for the rest of the run. I also set the game's PC-side renderer to DirectX 11 instead of DX12, which reduced CPU overhead on the host and indirectly lowered the bitrate pressure on the whole pipeline.

Network configuration matters more than your internet speed. You do not need fast internet for this because everything runs locally. What you need is a stable local network with low jitter. I had consistent 2ms round-trip times between my PC and phone on my home network. If your ping fluctuates between 2ms and 15ms randomly, your inputs will feel inconsistent even though the average looks fine. Check your jitter, not just your latency. A cheap TP-Link arrow router or any gaming-capable router that supports QoS helps here because you can prioritize the moonlight traffic over everything else on the network. The modding process itself has a pitfall that catches people out. The SkipLoadingScenes mod requires that you delete or rename certain .r6 archive files in the game directory. If you install updates through GOG or Steam after applying the mods, the update overwrites your modified files and everything breaks. The fix is to reinstall the mods after every game update, which means keeping the mod files accessible in a separate folder rather than letting the launcher manage them. I keep mine in a portable folder on a secondary drive and launch the game through the modified shortcut each time. Another counter-intuitive thing: running the game at 30fps on the PC side can actually feel smoother for speedrunning than 60fps on some phones. The S22's display is 120Hz, but moonlight struggles to maintain a consistent 60fps stream when the PC is simultaneously running the game at high settings. Capping the game at 30fps on the host means moonlight can dedicate more bandwidth to maintaining a clean, artifact-free stream, and the input latency difference between 30 and 60fps stream is negligible once you factor in your own reaction time. Your runs will be slightly slower in raw game FPS, but the consistency of the stream often compensates for it. I tested this head-to-head and my 30fps stream runs averaged about 4 seconds faster per segment than my 60fps attempts because I made fewer mistakes from visual stutter.

Get the Full Details

Witcher 3 Gameplay On Android | EGG NS v3.1.1😀 - YouTube
Witcher 3 Gameplay On Android | EGG NS v3.1.1😀 - YouTube

If you are trying this and your phone keeps disconnecting, check whether your router is doing band steering. Some routers automatically switch devices between 2.4GHz and 5GHz when they detect signal changes, and that switch causes a brief but devastating drop in the stream. Lock your phone to 5GHz manually in the Wi-Fi settings and disable band steering on the router if the firmware allows it. There is a limit to what this setup can do well. The main bottleneck is the phone's ability to decode the stream while maintaining low thermal output. On older phones like the S10 or even the Note 20, you will struggle to get a stable 1080p stream without the phone throttling within 20 minutes. The S22 and S23 series are the practical minimum for sustained runs. Anything below that and you are better off just recording the PC directly and watching it back, because the experience degrades too much to be useful for actual speedrunning practice. For most people who want to try this, the practical recommendation is to start with a used S21 or S22, get moonlight set up on both devices, and follow the speedrun.com mod list for The Witcher 3 glitchless category. The whole setup takes about an hour to configure correctly. After that it just works, assuming your network is decent and your phone stays cool.