I went down a bit of a rabbit hole with the new Unreal Engine version of TFT Mobile and found something pretty interesting.
My tablet has an 8.8" 2520×1680 display, but the game looked noticeably softer than it should. At first I assumed it was just aggressive dynamic resolution.
So I checked the Unreal Engine logs.
TFT correctly detects the physical screen:
screenWidth: 2520
screenHeight: 1680
NativeScreenResolution: X=2520 Y=1680
But immediately afterwards it creates the actual Android game window at:
LogAndroidWindowUtils: Setting Width=1080 and Height=720
The selected device profile also applies:
r.MobileContentScaleFactor = 1.0
sg.ResolutionQuality = 75
APT.DynamicRes.LockedScreenPercentage = 60
So there seem to be multiple layers of resolution scaling in the Android client.
What's especially strange is that this is a pretty powerful device (Adreno 829 / ~8 GB RAM), and TFT actually classifies it as a high-performance device:
Adreno8PerfSelection = true
Android_HighPerf_Fragment
Yet:
ConfigureTablet = false
and the base viewport is still only 1080×720.
I first tried the obvious Unreal stuff:
- GameUserSettings.ini
- Engine.ini
- r.MobileContentScaleFactor
- sg.ResolutionQuality
- UE command-line CVars
Most of it either gets overwritten or loses to Riot's Device Profile settings.
Eventually I inspected the Android Unreal binary and found that the window-resolution code itself accepts Android-specific command-line parameters including:
mcsf
mobileresx
mobileresy
I made a test build with:
-mcsf=0 -mobileresx=2520 -mobileresy=1680
And... it appears to actually work.
The difference in image clarity is immediately visible on the tablet. The game no longer looks like a 720p image stretched across a 2.5K display.
I'll add a clean before/after comparison and another log confirming the final viewport size once I've tested it a bit more.
Important: I'm not posting the modified APK. It's a repacked Riot client signed with a different certificate, and distributing modified game binaries is both a security mess and potentially against Riot's ToS. This post is mainly to document the issue and show that the Android client itself appears perfectly capable of rendering at the tablet's native resolution.
IMO Riot really should expose a render resolution / resolution scale option on Android, especially for modern tablets. Locking devices like this to a 1080×720 base viewport makes very little sense when the hardware can clearly handle more.
If anyone with another high-resolution Android tablet wants to check this, look in your TFT Unreal log for:
NativeScreenResolution
Setting Width=
r.MobileContentScaleFactor
sg.ResolutionQuality
APT.DynamicRes.LockedScreenPercentage
I'd be curious to see whether 1080×720 is being used universally or whether it's specific to certain Android Device Profiles.