fix: FAITHFUL RATIO works on Android and iOS

apply() returned false on its first line for mobile, so the option did
nothing there. A phone has no window to resize, so the lock caps the
render scale instead: the largest whole multiple of 160x144 the display
holds, centred, black around it.

Two parts beyond that. The scale is read off the display rather than from
the desktop's 1X-4X ladder, which named a different fraction of every
device and left the useful levels off the list; mobile shows ON or OFF.
And the world pass, which expands to cover the whole display so letterbox
becomes more map, is now sized against the locked viewport, so the lock
reaches the overworld instead of showing more of it.

Pixel perfect throughout, whole multiples only. Desktop and OFF are
unchanged. Renames the row to FAITHFUL RATIO on both platforms; the saved
key stays faithfulRes so existing settings carry over.
This commit is contained in:
spiritsnails
2026-08-02 12:44:38 -06:00
parent 4e7eda65ed
commit 02ad846dfa
5 changed files with 274 additions and 12 deletions
+1 -1
View File
@@ -354,7 +354,7 @@ local function buildRows(game)
-- Game Boy screen with no letterbox at all. Sits next to VIDEO MODE
-- because it overrides it: holding an exact size means dropping
-- fullscreen.
{ id = "faithfulRes", label = Strings("FAITHFUL RES"),
{ id = "faithfulRes", label = Strings("FAITHFUL RATIO"),
value = function(g)
return FaithfulRes.label(g.save.options.faithfulRes)
end,