From f4a570cc5fa958c10ad872a16c475f8896b0d32b Mon Sep 17 00:00:00 2001
From: Rahix <rahix@rahix.de>
Date: Fri, 18 Aug 2023 20:28:42 +0200
Subject: [PATCH] sim: Add configurable OLED scale

---
 sim/fakes/_sim.py | 11 ++++++-----
 sim/run.py        |  2 ++
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/sim/fakes/_sim.py b/sim/fakes/_sim.py
index 6a86ced947..2a3f19dcae 100644
--- a/sim/fakes/_sim.py
+++ b/sim/fakes/_sim.py
@@ -30,6 +30,7 @@ background = pygame.image.load(bgpath)
 
 OLED_SIZE = int(os.environ["SIM_OLED_SIZE"])
 OLED_ASPECT = float(os.environ["SIM_OLED_ASPECT"])
+OLED_SCALE = float(os.environ["SIM_OLED_SCALE"])
 
 
 def path_replace(p):
@@ -518,11 +519,11 @@ class Simulation:
         center_x = screen_w // 2
         center_y = screen_h // 2
         if FULL_SCREEN:
-            off_x = center_x - (screen_h * OLED_ASPECT // 2)
-            off_y = center_y - (screen_h // 2)
-            new = pygame.transform.scale(
-                self._oled_surface, (screen_h * OLED_ASPECT, screen_h)
-            )
+            size_x = screen_h * OLED_ASPECT * OLED_SCALE
+            size_y = screen_h * OLED_SCALE
+            off_x = center_x - (size_x // 2)
+            off_y = center_y - (size_y // 2)
+            new = pygame.transform.scale(self._oled_surface, (size_x, size_y))
             full.blit(new, (off_x, off_y))
         else:
             off_x = center_x - (OLED_SIZE // 2)
diff --git a/sim/run.py b/sim/run.py
index 119af7e379..d275f72a55 100755
--- a/sim/run.py
+++ b/sim/run.py
@@ -164,6 +164,7 @@ def sim_main():
     )
     parser.add_argument("--oled-size", dest="oled_size", default=240)
     parser.add_argument("--oled-aspect", dest="oled_aspect", default=1)
+    parser.add_argument("--oled-scale", dest="oled_scale", default=1)
     parser.add_argument(
         "override_app",
         nargs="?",
@@ -175,6 +176,7 @@ def sim_main():
     os.environ["SIM_FULL_SCREEN"] = "1" if args.full_screen else "0"
     os.environ["SIM_OLED_SIZE"] = str(args.oled_size)
     os.environ["SIM_OLED_ASPECT"] = str(args.oled_aspect)
+    os.environ["SIM_OLED_SCALE"] = str(args.oled_scale)
     import _sim
 
     _sim.SCREENSHOT = args.screenshot
-- 
GitLab