[runtime] Fix progress menu aspect ratios (#1055)

* update progress code and fix our frame "scissoring"

* aspect ratio hacks

* expand progress tint for widescreen

* give up and comment things properly

* properly undo hacks
This commit is contained in:
ManDude 2022-01-08 18:39:17 +00:00 committed by GitHub
parent 3ceeafbd46
commit 701108a1b6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 5692 additions and 7970 deletions

View file

@ -11,9 +11,6 @@ namespace v2 {
// The previous issues we had with stack overflow only happened when there was a stack frame per
// element in a list.
// TODO: there's a different style of splitting that we should do for forms like:
// set!, and, or, <, >, +... where we try leaving operator + one other.
// The main node type.
// unlike v1, this nests lists.
// these have pointers to parents, so generally not safe to copy.
@ -193,7 +190,7 @@ void break_list(Node* node) {
node->top_line_count = 1;
const std::unordered_set<std::string> sameline_splitters = {
"if", "<", ">", "<=", ">=", "set!", "=", "!=", "+", "-", "*", "/", "the", "->"};
"if", "<", ">", "<=", ">=", "set!", "=", "!=", "+", "-", "*", "/", "the", "->", "and", "or"};
if (node->child_nodes.at(0).kind == Node::Kind::LIST) {
// ((foo
@ -255,7 +252,7 @@ void insert_required_breaks(const std::vector<Node*>& bfs_order) {
const std::unordered_set<std::string> always_break = {
"when", "defun-debug", "countdown", "case", "defun", "defmethod",
"let", "until", "while", "if", "dotimes", "cond",
"else", "defbehavior", "with-pp", "rlet", "defstate"};
"else", "defbehavior", "with-pp", "rlet", "defstate", "behavior"};
for (auto node : bfs_order) {
if (!node->break_list && node->kind == Node::Kind::LIST &&
node->child_nodes.at(0).kind == Node::Kind::ATOM) {

View file

@ -14903,7 +14903,7 @@
(total-nb-of-buzzers int32 :offset-assert 288)
(card-info mc-slot-info :offset-assert 292)
(last-option-index-change int64 :offset-assert 296)
(video-mode-timeout uint64 :offset-assert 304)
(video-mode-timeout int64 :offset-assert 304)
(display-state-stack progress-screen 5 :offset-assert 312)
(option-index-stack int32 5 :offset-assert 352)
(display-state-pos int32 :offset-assert 372)

View file

@ -394,7 +394,8 @@
"ERROR: <asg> ~A in spool anim loop for ~A ~D, but not loaded.~": 3,
"~0k~5d/~d ~6d/~d ~6d/~d ": 6,
"~0k~s~%": 1,
"money ~A was killed in pickup~%": 0
"money ~A was killed in pickup~%": 0,
" id address name aid tsk lev status x y z address name state heap flags~%": 3
},
"blocks_ending_in_asm_branch": {

View file

@ -2314,6 +2314,8 @@
"(method 14 level-group)": [
[[54, 164], "s1", "process-drawable"],
[[107, 127], "s0", "(pointer int32)"],
[[153, 162], "v0", "symbol"],
[[319, 342], "s0", "process-drawable"],
[368, "v1", "(pointer process-drawable)"],
[[384, 494], "s5", "process-drawable"]

View file

@ -3355,7 +3355,7 @@
"(method 18 bsp-header)": {
"vars": {
"a2-0": "existing-actor-count",
"a2-0": "actor-count",
"s4-0": "birth-idx",
"a0-4": "idx-to-birth",
"v1-25": "actor-to-birth",
@ -3530,7 +3530,9 @@
"(method 14 level-group)": {
"vars": {
"s1-1": ["s1-1", "process-drawable"]
"s0-1": ["s0-1", "(pointer int32)"],
"s1-1": ["s1-1", "process-drawable"],
"v0-10": ["v0-10", "symbol"]
}
},

View file

@ -8,7 +8,9 @@ out vec4 fragment_color;
out vec3 tex_coord;
void main() {
gl_Position = vec4((position_in.x - 0.5) * 16. , -(position_in.y - 0.5) * 32, position_in.z * 2 - 1., 1.0);
fragment_color = vec4(rgba_in.x, rgba_in.y, rgba_in.z, rgba_in.a * 2);
gl_Position = vec4((position_in.x - 0.5) * 16, -(position_in.y - 0.5) * 32, position_in.z * 2 - 1, 1.0);
// scissoring area adjust
gl_Position.y *= 512.0/448.0;
fragment_color = vec4(rgba_in.rgb, rgba_in.a * 2);
tex_coord = tex_coord_in;
}

View file

@ -8,7 +8,9 @@ out vec4 fragment_color;
out vec3 tex_coord;
void main() {
gl_Position = vec4((position_in.x - 0.5) * 16., -(position_in.y - 0.5) * 32, position_in.z * 2 - 1., 1.0);
fragment_color = vec4(rgba_in.x, rgba_in.y, rgba_in.z, rgba_in.w * 2.);
gl_Position = vec4((position_in.x - 0.5) * 16, -(position_in.y - 0.5) * 32, position_in.z * 2 - 1, 1.0);
// scissoring area adjust
gl_Position.y *= 512.0/448.0;
fragment_color = vec4(rgba_in.rgb, rgba_in.a * 2);
tex_coord = tex_coord_in;
}

View file

@ -12,6 +12,8 @@ out vec4 fragment_color;
void main() {
// Note: position.y is multiplied by 32 instead of 16 to undo the half-height for interlacing stuff.
gl_Position = vec4((position_in.x - 0.5) * 16., -(position_in.y - 0.5) * 32, position_in.z * 2 - 1., 1.0);
// scissoring area adjust
gl_Position.y *= 512.0/448.0;
fragment_color = vec4(rgba_in.x, rgba_in.y, rgba_in.z, rgba_in.w + 0.5);
//fragment_color = vec4(1.0, 0, 0, 0.7);
}

View file

@ -8,5 +8,7 @@ out vec4 fragment_color;
void main() {
gl_Position = vec4((position_in.x - 0.5) * 16., -(position_in.y - 0.5) * 32, position_in.z * 2 - 1., 1.0);
// scissoring area adjust
gl_Position.y *= 512.0/448.0;
fragment_color = vec4(1.0, 0, 0, 0.7);
}

View file

@ -10,5 +10,7 @@ out vec4 fragment_color;
void main() {
// Note: position.y is multiplied by 32 instead of 16 to undo the half-height for interlacing stuff.
gl_Position = vec4((position_in.x - 0.5) * 16., -(position_in.y - 0.5) * 32, position_in.z * 2 - 1., 1.0);
// scissoring area adjust
gl_Position.y *= 512.0/448.0;
fragment_color = vec4(rgba_in.x, rgba_in.y, rgba_in.z, rgba_in.w + 0.5);
}

View file

@ -13,6 +13,8 @@ out flat uvec2 tex_info;
void main() {
gl_Position = vec4((position_in.x - 0.5) * 16., -(position_in.y - 0.5) * 32, position_in.z * 2 - 1., 1.0);
// scissoring area adjust
gl_Position.y *= 512.0/448.0;
fragment_color = vec4(rgba_in.x, rgba_in.y, rgba_in.z, rgba_in.w * 2.);
tex_coord = tex_coord_in;
tex_info = tex_info_in;

View file

@ -9,6 +9,8 @@ noperspective out vec3 tex_coord;
void main() {
gl_Position = vec4((position_in.x - 0.5) * 16. , -(position_in.y - 0.5) * 32, position_in.z * 2 - 1., 1.0);
// scissoring area adjust
gl_Position.y *= 512.0/448.0;
fragment_color = vec4(rgba_in.x, rgba_in.y, rgba_in.z, rgba_in.a * 2);
tex_coord = tex_coord_in;
}

View file

@ -6,5 +6,7 @@ out vec3 tex_coord;
void main() {
gl_Position = vec4(position_in.x*2 -1, position_in.y*2-1, 0.0, 1.0);
// scissoring area adjust
gl_Position.y *= 512.0/448.0;
tex_coord = position_in;
}

View file

@ -13,6 +13,8 @@ out flat uvec2 tex_info;
void main() {
gl_Position = vec4((position_in.x - 0.5) * 16., -(position_in.y - 0.5) * 32, position_in.z * 2 - 1., 1.0);
// scissoring area adjust
gl_Position.y *= 512.0/448.0;
fragment_color = vec4(rgba_in.x, rgba_in.y, rgba_in.z, rgba_in.w * 2.);
tex_coord = tex_coord_in;
tex_info = tex_info_in;

View file

@ -63,6 +63,8 @@ void main() {
transformed.xyz *= transformed.w;
gl_Position = transformed;
// scissoring area adjust
gl_Position.y *= 512.0/448.0;
// time of day lookup
fragment_color = texelFetch(tex_T1, time_of_day_index, 0);

View file

@ -44,6 +44,8 @@ void main() {
transformed.xyz *= transformed.w;
gl_Position = transformed;
// scissoring area adjust
gl_Position.y *= 512.0/448.0;
// time of day lookup
fragment_color = rgba_in;

View file

@ -34,7 +34,6 @@
;; the x/y ratio are frustum slopes
(set! (-> math-cam x-ratio) (tan (* 0.5 (-> math-cam fov))))
;;(format #t "aspect is ~A~%" aspect)
(if (= aspect 'aspect4x3)
(set! (-> math-cam y-ratio) (* (1/ ASPECT_4X3) (-> math-cam x-ratio)))
(set! (-> math-cam y-ratio) (* (1/ ASPECT_16X9) (-> math-cam x-ratio)))
@ -139,17 +138,11 @@
(let ((corrected-fog (/ fog-factor-2 (* (-> math-cam d) (- (-> math-cam f) (-> math-cam d)))))
(cam-fov-mult (-> math-cam fov-correction-factor))
)
(set! (-> math-cam perspective vector 0 x)
(* cam-fov-mult (- (/ (-> math-cam x-pix) (* (-> math-cam x-ratio) (-> math-cam d)))))
)
(set! (-> math-cam perspective vector 1 y)
(* cam-fov-mult (- (/ (-> math-cam y-pix) (* (-> math-cam y-ratio) (-> math-cam d)))))
)
(set! (-> math-cam perspective vector 0 x) (* cam-fov-mult (- (/ (-> math-cam x-pix) (* (-> math-cam x-ratio) (-> math-cam d))))))
(set! (-> math-cam perspective vector 1 y) (* cam-fov-mult (- (/ (-> math-cam y-pix) (* (-> math-cam y-ratio) (-> math-cam d))))))
(set! (-> math-cam perspective vector 2 z) (* cam-fov-mult (+ (-> math-cam f) (-> math-cam d)) corrected-fog))
(set! (-> math-cam perspective vector 2 w) (* (/ cam-fov-mult (-> math-cam d)) fog-at-near-plane))
(set! (-> math-cam perspective vector 3 z)
(* -2.0 corrected-fog (-> math-cam f) (-> math-cam d) cam-fov-mult)
)
(set! (-> math-cam perspective vector 3 z) (* -2.0 corrected-fog (-> math-cam f) (-> math-cam d) cam-fov-mult))
)
;; hvdf/hmge, no idea what these are
@ -191,7 +184,7 @@
;; cheating this by 1 bit seems to fix it.
(#when PC_PORT
;; #x4b002032 -> #x4b002031
(-! (-> math-cam isometric vector 3 z) 1.)
(set! (-> math-cam isometric vector 3 z) (the-as float (- (the-as int (-> math-cam isometric vector 3 z)) 1)))
)
)

View file

@ -3973,7 +3973,7 @@
(#when PC_PORT
(defmacro new-dm-function (text var func)
(defmacro new-dm-func (text var func)
`(new 'debug 'debug-menu-item-function ,text ,var (the-as (function int object) ,func))
)
(defmacro new-dm-flag (text var func)
@ -4060,7 +4060,7 @@
(let ((iter *level-load-list*))
(while (not (or (null? iter) (null? (cdr iter)) (null? (cddr iter))))
(debug-menu-append-item teleport-menu
(new-dm-function (symbol->string (the-as symbol (car iter)))
(new-dm-func (symbol->string (the-as symbol (car iter)))
(-> (the-as symbol (car iter)) value)
(lambda ((info level-load-info))
(let ((tf (new 'stack 'transformq)))
@ -4158,9 +4158,23 @@
)
)
(defun dm-display-entities-pick-func ((arg0 symbol))
(debug-print-entities *level* arg0 (the-as type #f))
)
(when (-> *debug-menu-context* root-menu)
(debug-menu-append-item (-> *debug-menu-context* root-menu) (debug-menu-make-load-menu *debug-menu-context*))
;; Entity menu TODO
(debug-menu-append-item (-> *debug-menu-context* root-menu)
(debug-menu-make-from-template *debug-menu-context*
'(menu "Entity"
(function "Print entity info" #t dm-display-entities-pick-func)
(function "Print entity info (art-group)" art-group dm-display-entities-pick-func)
(function "Print entity info (entity-meters)" entity-meters dm-display-entities-pick-func)
(function "Print entity info (entity-perm)" entity-perm dm-display-entities-pick-func)
)
)
)
;; Music menu TODO
;; Secrets menu TODO
;; Scene menu TODO
@ -4217,6 +4231,8 @@
(function "2560 x 1440" #f (lambda () (set-size! *pc-settings* 2560 1440)))
(function "2880 x 2160" #f (lambda () (set-size! *pc-settings* 2880 2160)))
(function "3840 x 2160" #f (lambda () (set-size! *pc-settings* 3840 2160)))
(function "512 x 448" #f (lambda () (set-size! *pc-settings* 512 448)))
(function "512 x 512" #f (lambda () (set-size! *pc-settings* 512 512)))
)
(flag "Letterbox" #f (dm-lambda-boolean-flag (-> *pc-settings* letterbox?)))
(flag "Skip movies" #f (dm-lambda-boolean-flag (-> *pc-settings* skip-movies?)))
@ -4255,7 +4271,9 @@
)
)
)
(debug-menu-append-item (-> *debug-menu-context* root-menu)
(let* ((prog-menu (new 'debug 'debug-menu *debug-menu-context* "Progress menu"))
(prog-menu-node (new-dm-submenu "Progress" prog-menu))
(other-menu-node
(debug-menu-make-from-template *debug-menu-context*
'(menu "Other"
(flag "DECI Count" *display-deci-count* dm-boolean-toggle-pick-func)
@ -4263,8 +4281,57 @@
(flag "Update vis outside bsp" *update-leaf-when-outside-bsp* dm-boolean-toggle-pick-func)
(float-var "Actor birth dist" #f (dm-lambda-meters-var (-> *ACTOR-bank* birth-dist)) 20 1 #t 0 10000 1)
(float-var "Actor pause dist" #f (dm-lambda-meters-var (-> *ACTOR-bank* pause-dist)) 20 1 #t 0 10000 1)
(flag "Force progress" #f (dm-lambda-boolean-flag (-> *pc-settings* progress-force?)))
)
))
(other-menu (-> (the-as debug-menu-item-submenu other-menu-node) submenu))
)
(dotimes (i 35)
(debug-menu-append-item prog-menu
(new-dm-func (new 'debug 'string 0 (enum->string progress-screen i)) i
(lambda ((val progress-screen))
(cond
((-> *pc-settings* progress-force?)
(cond
((not *progress-process*)
(make-levels-with-tasks-available-to-progress)
(disable-level-text-file-loading)
(set! (-> *progress-state* starting-state) val)
(set! *progress-process* (make-init-process progress progress-init-by-other
:to *dproc*
:stack *progress-stack-top*))
(let ((s5-1 *progress-process*))
(set! (-> s5-1 0 completion-percentage) (calculate-completion (-> s5-1 0)))
(set! *master-mode* 'progress)
(set! (-> s5-1 0 display-level-index) 0) ;; geyser rock
(set! (-> s5-1 0 next-level-index) (-> s5-1 0 display-level-index))
(set! (-> s5-1 0 display-state) (progress-screen invalid))
(set-transition-progress! (-> s5-1 0) 512)
(set! (-> s5-1 0 task-index) (get-next-task-up -1 (-> s5-1 0 display-level-index)))
)
(when *progress-process*
(enter! (-> *progress-process* 0) val 0)
(set! (-> *progress-process* 0 card-info) #f)
)
)
(else
(push! (-> *progress-process* 0))
(set! (-> *progress-process* 0 next-display-state) val)
(set! (-> *progress-process* 0 card-info) #f)
)
)
)
(else
(activate-progress *dproc* val)
)
)
(set-master-mode 'progress)
)
))
)
(debug-menu-append-item other-menu prog-menu-node)
(debug-menu-append-item (-> *debug-menu-context* root-menu) other-menu-node)
)
)

File diff suppressed because it is too large Load diff

View file

@ -668,7 +668,7 @@
(draw *pc-settings* debug-buf)
)
(when (-> *pc-settings* display-actor-bank)
(draw-string-xy (string-format "Actor Bank: ~,,1m/~,,1m (~D)" (-> *ACTOR-bank* pause-dist) (-> *ACTOR-bank* birth-dist) (-> *ACTOR-bank* birth-max)) debug-buf 512 232 (font-color default) (font-flags shadow kerning right))
(draw-string-xy (string-format "Actor Bank: ~,,1m/~,,1m (~D)" (-> *ACTOR-bank* pause-dist) (-> *ACTOR-bank* birth-dist) (-> *ACTOR-bank* birth-max)) debug-buf 512 (- 224 8) (font-color default) (font-flags shadow kerning right))
)
)
(let (

View file

@ -17,18 +17,8 @@
(set! (-> *video-parms* relative-y-scale) 1.0)
(set! *ticks-per-frame* 9765) ;; 585900 total?
(set! (-> *math-camera* isometric vector 1 y) 0.5)
(#cond
(PC_PORT
;; discard scissoring area
(set! (-> *math-camera* y-pix) 128.0)
(set! (-> *math-camera* y-clip) 512.0)
;(set! (-> *video-parms* relative-y-scale) (/ 448.0 512.0))
)
(#t
(set! (-> *math-camera* y-pix) 112.0)
(set! (-> *math-camera* y-clip) 448.0)
)
)
(set! (-> *shadow-data* texoffset y) 112.5)
)
(('pal)

View file

@ -541,6 +541,15 @@
(f2-0 (-> *math-camera* perspective vector 1 y))
(f0-1 (* -1.9996 (-> *math-camera* perspective vector 0 x)))
)
(#when PC_PORT
(when (and *pc-settings* (not (-> *pc-settings* use-vis?)))
;; these are the values used when the game is in 4x3
;; when the game is in widescreen, HUD sprites are generally enlarged, which looks terrible
(set! f1-0 (the-as float #xbeccdcf4))
(set! f2-0 (the-as float #xbe6f01c8))
(set! f0-1 (the-as float #x3f4cd277))
)
)
(set-vector! (-> mtx2 vector 0) f0-1 0.0 0.0 0.0)
(set-vector! (-> mtx2 vector 1) 0.0 (- (* (/ f2-0 f1-0) f0-1)) 0.0 0.0)
(set-vector! (-> mtx2 vector 2) 0.0 0.0 (- f0-1) 0.0)

View file

@ -32,7 +32,7 @@
(defglobalconstant PC_KERNEL_VERSION_BUILD #x0000)
(defglobalconstant PC_KERNEL_VERSION_REVISION #x0000)
(defglobalconstant PC_KERNEL_VERSION_REVISION #x0001)
(defglobalconstant PC_KERNEL_VERSION_MINOR #x0000)
(defglobalconstant PC_KERNEL_VERSION_MAJOR #x0001)
@ -48,6 +48,7 @@
(defconstant ASPECT_4X3 (/ 4.0 3.0))
(defconstant ASPECT_16X9 (/ 16.0 9.0))
(defconstant ASPECT_16X9_SCALE (/ ASPECT_16X9 ASPECT_4X3))
(defconstant PC_BASE_WIDTH 640)
(defconstant PC_BASE_HEIGHT 480)
@ -181,6 +182,8 @@
(dpi-y float) ;; DPI height scale
(aspect-ratio-auto? symbol) ;; if on, aspect ratio is calculated automatically.
(aspect-ratio float) ;; the desired aspect ratio. set auto to off and then this to 4/3 to force 4x3 aspect.
(aspect-ratio-scale float) ;; aspect ratio compared to 4x3
(aspect-ratio-reciprocal float) ;; aspect ratio compared to 3x4
(fullscreen? symbol) ;; fullscreen status. can be #f, #t or borderless
(letterbox? symbol) ;; letterbox. #f = stretched
(vsync? symbol) ;; vsync.
@ -194,6 +197,7 @@
(aspect-custom-x int)
(aspect-custom-y int)
(debug-pad-display symbol)
(progress-force? symbol)
(device-audio pc-device-info :inline) ;; used audio device
(device-screen pc-device-info :inline) ;; used display device
@ -258,6 +262,7 @@
(set-fullscreen! (_type_ symbol) int)
(set-size! (_type_ int int) int)
(set-aspect! (_type_ int int) int)
(set-aspect-ratio! (_type_ float) int)
(read-from-file (_type_ string) symbol)
(write-to-file (_type_ string) symbol)
)
@ -296,6 +301,7 @@
(set! (-> obj new-lb?) #f)
(set! (-> obj display-actor-bank) #f)
(set! (-> obj debug-pad-display) #f)
(set! (-> obj progress-force?) #f)
(set! (-> obj font-scale) 1.0)
(set! (-> obj aspect-custom-x) 1)
(set! (-> obj aspect-custom-y) 1)

View file

@ -56,13 +56,20 @@
(defmethod set-aspect! pc-settings ((obj pc-settings) (aw int) (ah int))
(let ((aspect (/ (the float aw) (the float ah))))
(set! (-> *pc-settings* aspect-ratio) aspect)
(set! (-> *pc-settings* aspect-ratio-auto?) #f)
(set! (-> *pc-settings* use-vis?) #f)
(set-aspect-ratio! obj aspect)
(set! (-> obj aspect-ratio-auto?) #f)
(set! (-> obj use-vis?) #f)
)
0)
(defmethod set-aspect-ratio! pc-settings ((obj pc-settings) (aspect float))
(set! (-> obj aspect-ratio) aspect)
(set! (-> obj aspect-ratio-scale) (/ aspect ASPECT_4X3))
(set! (-> obj aspect-ratio-reciprocal) (/ ASPECT_4X3 aspect))
0)
(defmethod update-from-os pc-settings ((obj pc-settings))
"Update settings from the PC kernel to GOAL."
@ -73,8 +80,8 @@
(when (-> obj use-vis?)
(if (= (-> *setting-control* default aspect-ratio) 'aspect4x3)
(set! (-> obj aspect-ratio) ASPECT_4X3)
(set! (-> obj aspect-ratio) ASPECT_16X9)
(set-aspect-ratio! obj ASPECT_4X3)
(set-aspect-ratio! obj ASPECT_16X9)
)
)
@ -82,7 +89,7 @@
(cond
((and (not (-> obj use-vis?)) (-> obj aspect-ratio-auto?))
;; the window determines the resolution
(set! (-> obj aspect-ratio) win-aspect)
(set-aspect-ratio! obj win-aspect)
(set! (-> obj width) (-> obj win-width))
(set! (-> obj height) (-> obj win-height))
)
@ -128,11 +135,26 @@
(update-from-os obj)
(update-to-os obj)
(when #t ;;(not (-> obj use-vis?))
(set! (-> *video-parms* relative-x-scale) (/ ASPECT_4X3 (-> obj aspect-ratio)))
(set! (-> *video-parms* relative-x-scale-reciprical) (/ (-> obj aspect-ratio) ASPECT_4X3))
(when (not (-> obj use-vis?))
(set! (-> *video-parms* relative-x-scale) (-> obj aspect-ratio-reciprocal))
(set! (-> *video-parms* relative-x-scale-reciprical) (-> obj aspect-ratio-scale))
(set! (-> *font-default-matrix* vector 0 x) (-> *video-parms* relative-x-scale))
)
(when (not (-> obj use-vis?))
(when *progress-process*
;; adjust sizes for progress.
;; video.gc sets the sizes in the normal game.
(let ((pr (-> *progress-process*))
(wide-adjust (* 4.0 (- (/ (-> obj aspect-ratio-scale) ASPECT_16X9_SCALE) (1/ ASPECT_16X9_SCALE))))
)
(set! (-> pr sides-x-scale) 1.0)
(set! (-> pr sides-y-scale) 13.0)
;(set! (-> pr left-x-offset) (+ 59 (the int (* (-> obj aspect-ratio-scale) -59))))
;(set! (-> pr right-x-offset) 26)
;(set! (-> pr button-scale) (+ 1.0 (* wide-adjust 0.1)))
)
)
)
(if (and *debug-segment* (-> obj debug-pad-display))
(debug-pad-display (-> *cpad-list* cpads 0))
)
@ -157,7 +179,7 @@
(format *pc-temp-string* "target aspect: ~,,3f/~,,3f A: ~A/~A L: ~A~%" (-> obj aspect-ratio) (/ (the float (-> obj win-width)) (the float (-> obj win-height))) (-> obj aspect-ratio-auto?) (-> obj use-vis?) (-> obj letterbox?))
(format *pc-temp-string* "fullscreen: ~A ~A~%" (-> obj fullscreen?) (-> obj vsync?))
(draw-string-xy *pc-temp-string* buf 0 (- 240 (* 8 4)) (font-color default) (font-flags shadow kerning))
(draw-string-xy *pc-temp-string* buf 0 (- 224 (* 8 4)) (font-color default) (font-flags shadow kerning))
(none))

View file

@ -145,7 +145,7 @@
(total-nb-of-buzzers int32 :offset-assert 288)
(card-info mc-slot-info :offset-assert 292)
(last-option-index-change int64 :offset-assert 296)
(video-mode-timeout uint64 :offset-assert 304)
(video-mode-timeout int64 :offset-assert 304)
(display-state-stack progress-screen 5 :offset-assert 312)
(option-index-stack int32 5 :offset-assert 352)
(display-state-pos int32 :offset-assert 372)

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -333,9 +333,7 @@
(when (> val max-val)
(set! max-val val))
)
max-val
)
max-val)
)

View file

@ -35,7 +35,9 @@ files_with_modifications = [
"plant-boss",
"helix-water",
"lavatube-energy",
"sage-finalboss-FIN"
"sage-finalboss-FIN",
"progress",
"entity"
]
for file in files: