fix blit size being wrong most of the time (#2620)

This commit is contained in:
ManDude
2023-05-05 02:31:27 +01:00
committed by GitHub
parent 6884b0f73e
commit acae62c919
5 changed files with 40 additions and 13 deletions
+28 -3
View File
@@ -141,7 +141,7 @@
(pc-get-window-scale (&-> obj dpi-x) (&-> obj dpi-y))
(when (-> obj use-vis?)
(if (= (get-game-setting! obj 'aspect-ratio) 'aspect4x3)
(if (= (get-game-setting obj 'aspect-ratio) 'aspect4x3)
(set-aspect-ratio! obj ASPECT_4X3)
(set-aspect-ratio! obj ASPECT_16X9)
)
@@ -340,6 +340,31 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmethod get-current-game-width pc-settings ((obj pc-settings))
"return the current width in pixels of the visible portion of the game"
(cond
((= (-> obj display-mode) 'windowed)
(if (-> obj letterbox?)
(-> obj lbox-width)
(-> obj real-width)))
(else
(-> obj width))
)
)
(defmethod get-current-game-height pc-settings ((obj pc-settings))
"return the current height in pixels of the visible portion of the game"
(cond
((= (-> obj display-mode) 'windowed)
(if (-> obj letterbox?)
(-> obj lbox-height)
(-> obj real-height)))
(else
(-> obj height))
)
)
(when *debug-segment*
(defmethod draw pc-settings ((obj pc-settings) (buf dma-buffer))
@@ -718,7 +743,7 @@
(format file " (fps ~D)~%" (-> obj target-fps))
(format file " (msaa ~D)~%" (-> obj gfx-msaa))
(format file " (aspect-state ~A ~D ~D ~A)~%" (get-game-setting! obj 'aspect-ratio)
(format file " (aspect-state ~A ~D ~D ~A)~%" (get-game-setting obj 'aspect-ratio)
(-> obj aspect-custom-x) (-> obj aspect-custom-y)
(-> obj aspect-ratio-auto?))
(format file " (display-mode ~A)~%" (-> obj display-mode))
@@ -764,7 +789,7 @@
(format file " (music-fadein? ~A)~%" (-> obj music-fadein?))
(format file " (music-fadeout? ~A)~%" (-> obj music-fadeout?))
(format file " (hinttitles? ~A)~%" (-> obj hinttitles?))
(format file " (game-language ~D)~%" (get-game-language! obj))
(format file " (game-language ~D)~%" (get-game-language obj))
(format file " (text-language ~D)~%" (-> obj text-language))
(format file " (subtitle-speaker ~A)~%" (-> obj subtitle-speaker?))
+4 -2
View File
@@ -340,9 +340,11 @@
(set-frame-rate! (_type_ int) int)
(set-monitor! (_type_ int) none)
(set-game-setting! (_type_ symbol symbol) object)
(get-game-setting! (_type_ symbol) symbol)
(get-game-setting (_type_ symbol) symbol)
(set-game-language! (_type_ language-enum) language-enum)
(get-game-language! (_type_) language-enum)
(get-game-language (_type_) language-enum)
(get-current-game-width (_type_) int)
(get-current-game-height (_type_) int)
(read-from-file (_type_ string) symbol)
(write-to-file (_type_ string) symbol)
(handle-input-settings (_type_ file-stream) object)
+3 -3
View File
@@ -29,7 +29,7 @@
)
)
(defmethod get-game-setting! pc-settings-jak1 ((obj pc-settings-jak1) (setting symbol))
(defmethod get-game-setting pc-settings-jak1 ((obj pc-settings-jak1) (setting symbol))
(case setting
(('video-mode)
(-> *setting-control* default video-mode)
@@ -38,7 +38,7 @@
(-> *setting-control* default aspect-ratio)
)
(else
(format #t "unknown setting ~A to get-game-setting!" setting)
(format #t "unknown setting ~A to get-game-setting" setting)
#f)
)
)
@@ -47,7 +47,7 @@
(set! (-> *setting-control* default language) lang)
)
(defmethod get-game-language! pc-settings-jak1 ((obj pc-settings-jak1))
(defmethod get-game-language pc-settings-jak1 ((obj pc-settings-jak1))
(-> *setting-control* default language)
)
+2 -2
View File
@@ -918,7 +918,7 @@ vf31: cam 0 (premultiplied by hmge)
(set! a1-46 128)
(set! a2-55 128)
)
(let ((v1-57 (* (-> *pc-settings* lbox-height) 16))
(let ((v1-57 (* (get-current-game-height *pc-settings*) 16))
(a3-16 0)
)
(let ((t1-22 (the-as (inline-array qword) (-> s4-1 base)))
@@ -928,7 +928,7 @@ vf31: cam 0 (premultiplied by hmge)
(set-vector! (-> t1-22 2 vector4w) a0-57 a1-46 a2-55 128)
(set-vector! (-> t1-22 3 vector4w) (* 0 16) v1-57 0 0)
(set-vector! (-> t1-22 4 vector4w) (* 1792 16) #x7300 0 0)
(set-vector! (-> t1-22 5 vector4w) (* (-> *pc-settings* lbox-width) 16) a3-16 0 0)
(set-vector! (-> t1-22 5 vector4w) (* (get-current-game-width *pc-settings*) 16) a3-16 0 0)
(set-vector! (-> t1-22 6 vector4w) (* 2304 16) #x8d00 0 0)
(&+! (-> s4-1 base) 112)
)
+3 -3
View File
@@ -28,7 +28,7 @@
)
)
(defmethod get-game-setting! pc-settings-jak2 ((obj pc-settings-jak2) (setting symbol))
(defmethod get-game-setting pc-settings-jak2 ((obj pc-settings-jak2) (setting symbol))
(case setting
(('video-mode)
(-> *setting-control* user-default video-mode)
@@ -37,7 +37,7 @@
(-> *setting-control* user-default aspect-ratio)
)
(else
(format #t "unknown setting ~A to get-game-setting!" setting)
(format #t "unknown setting ~A to get-game-setting" setting)
#f)
)
)
@@ -46,7 +46,7 @@
(set! (-> *setting-control* user-default language) lang)
)
(defmethod get-game-language! pc-settings-jak2 ((obj pc-settings-jak2))
(defmethod get-game-language pc-settings-jak2 ((obj pc-settings-jak2))
(get-current-language)
)