From 9560b08464af04e45f153b4f2715c699b672ef68 Mon Sep 17 00:00:00 2001
From: Grateful Forest <168700820+gratefulforest@users.noreply.github.com>
Date: Sun, 28 Dec 2025 16:50:06 +1030
Subject: [PATCH] jak1: fix aspect settings selection (#4101)
I was changing aspect ratios when I noticed something was off, getting
different results for the same setting.
On screen positions are determined by both the aspect ratio you select
as well as the last time you selected a PS2 aspect ratio.
You get different result by choosing 4x3 (PS2), then 16:9, compared to
16:9 (PS2), then 16:9. The same is true for all aspects and Fit to
Screen.
By contrast, Jak 2 always uses the 'aspect4x3 scale factor for all
custom aspects, making the menu option you select consistent.
There is an intention to use 4x3 for custom aspects
[here](https://github.com/open-goal/jak-project/blob/abf27960f0033436b066c712c787160d2c9a5346/goal_src/jak1/pc/progress-pc.gc#L2618);
when `fit-to-screen` then `(set-aspect-ratio 'aspect4x3)`. However it
needs the extra lines to take effect.
This is helpful as the only cause of vertical misalignment on memory
cards is using PS2 16x9 on custom aspects:
---
goal_src/jak1/pc/progress-pc.gc | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/goal_src/jak1/pc/progress-pc.gc b/goal_src/jak1/pc/progress-pc.gc
index 787557b1f3..4d66265a54 100644
--- a/goal_src/jak1/pc/progress-pc.gc
+++ b/goal_src/jak1/pc/progress-pc.gc
@@ -2615,6 +2615,7 @@
((= (-> options (-> obj option-index) name) (text-id fit-to-screen))
(set-aspect! *pc-settings* 4 3)
(false! (-> *pc-settings* use-vis?))
+ (set! (-> *setting-control* default aspect-ratio) 'aspect4x3)
(set-aspect-ratio 'aspect4x3)
(true! (-> *pc-settings* aspect-ratio-auto?)))
((= newx -1.0)
@@ -2627,7 +2628,9 @@
(true! (-> *pc-settings* use-vis?))
(set! (-> *setting-control* default aspect-ratio) 'aspect16x9)
(set-aspect-ratio 'aspect16x9))
- (else (set-aspect! *pc-settings* newx newy))))
+ (else
+ (set! (-> *setting-control* default aspect-ratio) 'aspect4x3)
+ (set-aspect! *pc-settings* newx newy))))
(cpad-clear! 0 x)
(cpad-clear! 0 circle)
(sound-play "cursor-options")