diff --git a/game/graphics/opengl_renderer/OpenGLRenderer.cpp b/game/graphics/opengl_renderer/OpenGLRenderer.cpp index 70881c1a46..a7ea0a71be 100644 --- a/game/graphics/opengl_renderer/OpenGLRenderer.cpp +++ b/game/graphics/opengl_renderer/OpenGLRenderer.cpp @@ -585,6 +585,8 @@ void OpenGLRenderer::render(DmaFollower dma, const RenderOptions& settings) { } } + m_last_pmode_alp = settings.pmode_alp_register; + if (settings.draw_render_debug_window) { auto prof = m_profiler.root()->make_scoped_child("render-window"); draw_renderer_selection_window(); @@ -595,18 +597,16 @@ void OpenGLRenderer::render(DmaFollower dma, const RenderOptions& settings) { } } - m_last_pmode_alp = settings.pmode_alp_register; - m_profiler.finish(); - if (settings.draw_profiler_window) { - m_profiler.draw(); - } - // if (m_profiler.root_time() > 0.018) { // fmt::print("Slow frame: {:.2f} ms\n", m_profiler.root_time() * 1000); // fmt::print("{}\n", m_profiler.to_string()); // } + if (settings.draw_profiler_window) { + m_profiler.draw(); + } + if (settings.draw_small_profiler_window) { SmallProfilerStats stats; stats.draw_calls = m_profiler.root()->stats().draw_calls; diff --git a/game/graphics/opengl_renderer/debug_gui.h b/game/graphics/opengl_renderer/debug_gui.h index 967814be18..70761d8693 100644 --- a/game/graphics/opengl_renderer/debug_gui.h +++ b/game/graphics/opengl_renderer/debug_gui.h @@ -42,10 +42,10 @@ class OpenGlDebugGui { void start_frame(); void finish_frame(); void draw(const DmaStats& dma_stats); - bool should_draw_render_debug() const { return m_draw_debug; } - bool should_draw_profiler() const { return m_draw_profiler; } - bool should_draw_subtitle_editor() const { return m_subtitle_editor; } - bool should_draw_filters_menu() const { return m_filters_menu; } + bool should_draw_render_debug() const { return master_enable && m_draw_debug; } + bool should_draw_profiler() const { return master_enable && m_draw_profiler; } + bool should_draw_subtitle_editor() const { return master_enable && m_subtitle_editor; } + bool should_draw_filters_menu() const { return master_enable && m_filters_menu; } const char* screenshot_name() const { return m_screenshot_save_name; } bool should_advance_frame() { return m_frame_timer.should_advance_frame(); } @@ -69,6 +69,8 @@ class OpenGlDebugGui { int screenshot_samples = 16; bool screenshot_hotkey_enabled = true; + bool master_enable = false; + private: FrameTimeRecorder m_frame_timer; bool m_draw_frame_time = false; diff --git a/game/graphics/pipelines/opengl.cpp b/game/graphics/pipelines/opengl.cpp index 5bd2aa192f..6a7cb5e2e5 100644 --- a/game/graphics/pipelines/opengl.cpp +++ b/game/graphics/pipelines/opengl.cpp @@ -501,7 +501,8 @@ void render_game_frame(int game_width, } want_hotkey_screenshot = false; - options.draw_small_profiler_window = g_gfx_data->debug_gui.small_profiler; + options.draw_small_profiler_window = + g_gfx_data->debug_gui.master_enable && g_gfx_data->debug_gui.small_profiler; options.pmode_alp_register = g_gfx_data->pmode_alp; GLint msaa_max; @@ -845,6 +846,7 @@ void GLDisplay::render() { #endif // render game! + g_gfx_data->debug_gui.master_enable = is_imgui_visible(); if (g_gfx_data->debug_gui.should_advance_frame()) { auto p = scoped_prof("game-render"); int game_res_w = Gfx::g_global_settings.game_res_w; diff --git a/goal_src/jak1/engine/common-obs/process-taskable.gc b/goal_src/jak1/engine/common-obs/process-taskable.gc index df879f0833..06dd7f074c 100644 --- a/goal_src/jak1/engine/common-obs/process-taskable.gc +++ b/goal_src/jak1/engine/common-obs/process-taskable.gc @@ -433,11 +433,11 @@ (set! (-> self blend-on-exit) arg0) ) ;; allow cutscene skipping on pc port - ;; save a sort of timestamp just so we know whether it took at least 1 frame + ;; save a sort of timestamp just so we know if it took at least 1 frame (#when PC_PORT (define *play-anim-time* (current-time))) (if (#if PC_PORT - (= (-> *pc-settings* cutscene-skips?) #t) + (= (-> *pc-settings* skip-movies?) #t) (and *debug-segment* *cheat-mode*)) (ja-play-spooled-anim (the-as spool-anim arg1) diff --git a/goal_src/jak1/engine/debug/default-menu.gc b/goal_src/jak1/engine/debug/default-menu.gc index c51df5c6f5..97c1231a50 100644 --- a/goal_src/jak1/engine/debug/default-menu.gc +++ b/goal_src/jak1/engine/debug/default-menu.gc @@ -4675,11 +4675,6 @@ (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) no-tex) ) (pc-cheats? (-> *pc-settings* cheats) no-tex))) - (flag "Boods" #f ,(lambda (arg (msg debug-menu-msg)) - (when (= msg (debug-menu-msg press)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) oh-my-goodness) - ) - (pc-cheats? (-> *pc-settings* cheats) oh-my-goodness))) ;; (flag "Hard rats" #f ,(lambda (arg (msg debug-menu-msg)) ;; (when (= msg (debug-menu-msg press)) ;; (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) hard-rats) @@ -4693,10 +4688,10 @@ ) ) (flag "Letterbox" #f ,(dm-lambda-boolean-flag (-> *pc-settings* letterbox?))) - ;(flag "Skip movies" #f ,(dm-lambda-boolean-flag (-> *pc-settings* skip-movies?))) + (flag "Skip movies" #f ,(dm-lambda-boolean-flag (-> *pc-settings* skip-movies?))) (flag "Money starburst" #f ,(dm-lambda-boolean-flag (-> *pc-settings* money-starburst?))) (flag "Subtitles" #f ,(dm-lambda-boolean-flag (-> *pc-settings* subtitles?))) - ;(flag "Hinttitles" #f ,(dm-lambda-boolean-flag (-> *pc-settings* hinttitles?))) + (flag "Hinttitles" #f ,(dm-lambda-boolean-flag (-> *pc-settings* hinttitles?))) (menu "Subtitle speaker" (flag "Off" #f dm-subtitle-setting) (flag "On" #t dm-subtitle-setting) @@ -4721,7 +4716,6 @@ (flag "br-portuguese" 13 dm-text-language) ) (flag "Discord RPC" #t ,(dm-lambda-boolean-flag (-> *pc-settings* discord-rpc?))) - (flag "Cutscene Skips" #t ,(dm-lambda-boolean-flag (-> *pc-settings* cutscene-skips?))) (flag "Speedrunner Mode" #t ,(dm-lambda-boolean-flag (-> *pc-settings* speedrunner-mode?))) (menu "PS2 settings" ;(flag "PS2 Load speed" #f ,(dm-lambda-boolean-flag (-> *pc-settings* ps2-read-speed?))) diff --git a/goal_src/jak1/engine/debug/menu.gc b/goal_src/jak1/engine/debug/menu.gc index 12b6baa00c..271957f92d 100644 --- a/goal_src/jak1/engine/debug/menu.gc +++ b/goal_src/jak1/engine/debug/menu.gc @@ -203,7 +203,7 @@ (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) (set! (-> v0-0 name) name) (set! (-> v0-0 parent) #f) - (set! (-> v0-0 refresh-delay) 23) + (set! (-> v0-0 refresh-delay) (#if PC_PORT 1 23)) (set! (-> v0-0 refresh-ctr) (-> v0-0 refresh-delay)) (set! (-> v0-0 id) (the-as int id)) (set! (-> v0-0 activate-func) func) @@ -373,7 +373,7 @@ (let ((max-chars (/ max-width 8))) (set! (-> gp-0 name) name) (set! (-> gp-0 parent) #f) - (set! (-> gp-0 refresh-delay) 31) + (set! (-> gp-0 refresh-delay) (#if PC_PORT 1 31)) (set! (-> gp-0 refresh-ctr) (-> gp-0 refresh-delay)) (set! (-> gp-0 id) id) (set! max-chars diff --git a/goal_src/jak1/engine/ui/text.gc b/goal_src/jak1/engine/ui/text.gc index b28e0668fa..6f6b803b91 100644 --- a/goal_src/jak1/engine/ui/text.gc +++ b/goal_src/jak1/engine/ui/text.gc @@ -150,9 +150,12 @@ (set! load-status 0) (set! heap-free (&- (-> heap top) (the-as uint (-> heap base)))) ;; english -> UK english in PAL - (if (and (= (scf-get-territory) GAME_TERRITORY_SCEE) (= lang (language-enum english))) - (set! lang (language-enum uk-english)) - ) + ;; PC port note : no longer necessary. + (#unless PC_PORT + (if (and (= (scf-get-territory) GAME_TERRITORY_SCEE) (= lang (language-enum english))) + (set! lang (language-enum uk-english)) + ) + ) ;; only load if we actually need to (when (or (= heap-sym-heap #f) ;; nothing loaded diff --git a/goal_src/jak1/levels/misty/sidekick-human.gc b/goal_src/jak1/levels/misty/sidekick-human.gc index 97bf827da5..4a6b227049 100644 --- a/goal_src/jak1/levels/misty/sidekick-human.gc +++ b/goal_src/jak1/levels/misty/sidekick-human.gc @@ -1491,6 +1491,8 @@ (close-specific-task! (game-task intro) (task-status need-resolution)) (start 'play (get-continue-by-name *game-info* "game-start")) (set-blackout-frames (seconds 0.1)) + (set! (-> *time-of-day-proc* 0 time-ratio) 300.0) + (set! (-> *time-of-day-proc* 0 hour) 7) (return #f) ) ) @@ -1681,6 +1683,8 @@ (close-specific-task! (game-task intro) (task-status need-resolution)) (start 'play (get-continue-by-name *game-info* "game-start")) (set-blackout-frames (seconds 0.1)) + (set! (-> *time-of-day-proc* 0 time-ratio) 300.0) + (set! (-> *time-of-day-proc* 0 hour) 7) (return #f) ) ) diff --git a/goal_src/jak1/levels/village1/sage.gc b/goal_src/jak1/levels/village1/sage.gc index bb371eb984..82a489f90c 100644 --- a/goal_src/jak1/levels/village1/sage.gc +++ b/goal_src/jak1/levels/village1/sage.gc @@ -513,6 +513,8 @@ (close-specific-task! (game-task intro) (task-status need-resolution)) (start 'play (get-continue-by-name *game-info* "game-start")) (set-blackout-frames (seconds 0.1)) + (set! (-> *time-of-day-proc* 0 time-ratio) 300.0) + (set! (-> *time-of-day-proc* 0 hour) 7) (return #f) ) ) diff --git a/goal_src/jak1/levels/village1/sequence-a-village1.gc b/goal_src/jak1/levels/village1/sequence-a-village1.gc index d099f6a5bd..49566d8c47 100644 --- a/goal_src/jak1/levels/village1/sequence-a-village1.gc +++ b/goal_src/jak1/levels/village1/sequence-a-village1.gc @@ -307,6 +307,8 @@ (close-specific-task! (game-task intro) (task-status need-resolution)) (start 'play (get-continue-by-name *game-info* "game-start")) (set-blackout-frames (seconds 0.1)) + (set! (-> *time-of-day-proc* 0 time-ratio) 300.0) + (set! (-> *time-of-day-proc* 0 hour) 7) (if (nonzero? (-> self part)) (kill-and-free-particles (-> self part)) ) diff --git a/goal_src/jak1/pc/features/speedruns.gc b/goal_src/jak1/pc/features/speedruns.gc index 902aad3dd1..a871177baa 100644 --- a/goal_src/jak1/pc/features/speedruns.gc +++ b/goal_src/jak1/pc/features/speedruns.gc @@ -36,6 +36,6 @@ (draw-string-xy (string-format "OpenGOAL Version: ~S ~%Speedrun mode: ~A ~%Cutscene Skips ~A" *pc-settings-built-sha* (-> *pc-settings* speedrunner-mode?) - (-> *pc-settings* cutscene-skips?)) + (-> *pc-settings* skip-movies?)) buf 0 (- 224 (* 8 4)) (font-color flat-yellow) (font-flags shadow kerning)))) (none)) diff --git a/goal_src/jak1/pc/pckernel-h.gc b/goal_src/jak1/pc/pckernel-h.gc index 1a1f6e7a6e..0fb5cd3a55 100644 --- a/goal_src/jak1/pc/pckernel-h.gc +++ b/goal_src/jak1/pc/pckernel-h.gc @@ -38,10 +38,12 @@ (defmacro static-pckernel-version (major minor rev build) `(new 'static 'pckernel-version :major ,major :minor ,minor :revision ,rev :build ,build)) - ;; version: 1.10.2.1 -(defglobalconstant PC_KERNEL_VERSION (static-pckernel-version 1 10 2 1)) + ;; version: 1.10.3.1 +(defglobalconstant PC_KERNEL_VERSION (static-pckernel-version 1 10 3 1)) (defconstant PC_KERNEL_VER_MAJOR (-> PC_KERNEL_VERSION major)) (defconstant PC_KERNEL_VER_MINOR (-> PC_KERNEL_VERSION minor)) +(defconstant PC_KERNEL_VER_REVISION (-> PC_KERNEL_VERSION revision)) +(defconstant PC_KERNEL_VER_BUILD (-> PC_KERNEL_VERSION build)) (defconstant PS2_VOICE_AMOUNT 48) @@ -318,7 +320,6 @@ (discord-rpc? symbol) ;; enable discord rich presence integration (speedrunner-mode? symbol) ;; enable speedrunner mode - (cutscene-skips? symbol) ;; enable cutscene skips (cheats pc-cheats) (cheats-known pc-cheats) @@ -422,7 +423,6 @@ (set! (-> obj aspect-custom-y) 3) (set! (-> obj discord-rpc?) #t) (set! (-> obj speedrunner-mode?) #f) - (set! (-> obj cutscene-skips?) #t) (set! (-> obj window-lock?) #t) (reset-gfx obj) @@ -483,7 +483,7 @@ (set! (-> obj ps2-hints?) #t) (set! (-> obj ps2-lod-dist?) #f) - (set! (-> obj force-envmap?) #f) + (set! (-> obj force-envmap?) #t) (set! (-> obj shrub-dist-mod) 1.0) (set! (-> obj lod-dist-mod) 1.0) (set! (-> obj lod-force-tfrag) 0) @@ -498,11 +498,15 @@ (set! (-> obj force-actors?) #f) (set! (-> obj music-fade?) #f) (set! (-> obj skip-movies?) #t) + (set! (-> obj text-language) (case *jak1-territory* + ((GAME_TERRITORY_SCEE) (pc-subtitle-lang uk-english)) + (else (pc-subtitle-lang english)))) (set! (-> obj subtitles?) *debug-segment*) (set! (-> obj hinttitles?) #t) (set! (-> obj subtitle-speaker?) 'auto) - (set! (-> obj subtitle-language) (pc-subtitle-lang english)) - (set! (-> obj text-language) (pc-subtitle-lang english)) + (set! (-> obj subtitle-language) (case *jak1-territory* + ((GAME_TERRITORY_SCEE) (pc-subtitle-lang uk-english)) + (else (pc-subtitle-lang english)))) (reset-original-camera obj) (set! (-> obj money-starburst?) #f) (set! (-> obj extra-hud?) #f) diff --git a/goal_src/jak1/pc/pckernel.gc b/goal_src/jak1/pc/pckernel.gc index d8e881a153..89c7b9485e 100644 --- a/goal_src/jak1/pc/pckernel.gc +++ b/goal_src/jak1/pc/pckernel.gc @@ -805,7 +805,7 @@ (cond ((and (= (-> version major) PC_KERNEL_VER_MAJOR) (= (-> version minor) PC_KERNEL_VER_MINOR)) - ;; minor difference + ;; minor or no difference ) (else ;; major difference @@ -877,7 +877,7 @@ (("hinttitles?") (set! (-> obj hinttitles?) (file-stream-read-symbol file))) (("discord-rpc?") (set! (-> obj discord-rpc?) (file-stream-read-symbol file))) (("speedrunner-mode?") (set! (-> obj speedrunner-mode?) (file-stream-read-symbol file))) - (("cutscene-skips?") (set! (-> obj cutscene-skips?) (file-stream-read-symbol file))) + (("cutscene-skips?") (file-stream-read-symbol file)) (("first-camera-h-inverted?") (set! (-> obj first-camera-h-inverted?) (file-stream-read-symbol file))) (("first-camera-v-inverted?") (set! (-> obj first-camera-v-inverted?) (file-stream-read-symbol file))) (("third-camera-h-inverted?") (set! (-> obj third-camera-h-inverted?) (file-stream-read-symbol file))) @@ -932,6 +932,15 @@ ) ) ) + ;; upgrade settings if minor changes + ;; remember to delete this when major changes to the version number are made + (when (and (= PC_KERNEL_VER_MAJOR 1) + (= PC_KERNEL_VER_MINOR 10) + (or (!= PC_KERNEL_VER_BUILD (-> version build)) + (!= PC_KERNEL_VER_REVISION (-> version revision)))) + ;; 1.10 upgrade: turn envmap on + (set! (-> obj force-envmap?) #t) + ) ) ) ) @@ -1004,7 +1013,6 @@ (format file " (skip-movies? ~A)~%" (-> obj skip-movies?)) (format file " (discord-rpc? ~A)~%" (-> obj discord-rpc?)) (format file " (speedrunner-mode? ~A)~%" (-> obj speedrunner-mode?)) - (format file " (cutscene-skips? ~A)~%" (-> obj cutscene-skips?)) (format file " (first-camera-h-inverted? ~A)~%" (-> obj first-camera-h-inverted?)) (format file " (first-camera-v-inverted? ~A)~%" (-> obj first-camera-v-inverted?)) (format file " (third-camera-h-inverted? ~A)~%" (-> obj third-camera-h-inverted?)) diff --git a/goal_src/jak1/pc/progress-pc.gc b/goal_src/jak1/pc/progress-pc.gc index 07c7aee93c..ced647a1cc 100644 --- a/goal_src/jak1/pc/progress-pc.gc +++ b/goal_src/jak1/pc/progress-pc.gc @@ -192,7 +192,7 @@ (new 'static 'game-option :option-type (game-option-type lod-bg) :name (game-text-id lod-bg) :scale #t) (new 'static 'game-option :option-type (game-option-type lod-fg) :name (game-text-id lod-fg) :scale #t) (new 'static 'game-option :option-type (game-option-type on-off) :name (game-text-id ps2-parts) :scale #t) - ;(new 'static 'game-option :option-type (game-option-type on-off) :name (game-text-id force-envmap) :scale #t) + (new 'static 'game-option :option-type (game-option-type on-off) :name (game-text-id force-envmap) :scale #t) ;(new 'static 'game-option :option-type (game-option-type on-off) :name (game-text-id force-actors) :scale #t) (new 'static 'game-option :option-type (game-option-type button) :name (game-text-id back) :scale #t) ) @@ -761,7 +761,7 @@ (set! (-> *misc-options* 0 value-to-modify) (&-> *pc-settings* money-starburst?)) (set! (-> *misc-options* 1 value-to-modify) (&-> *pc-settings* discord-rpc?)) - (set! (-> *misc-options* 2 value-to-modify) (&-> *pc-settings* cutscene-skips?)) + (set! (-> *misc-options* 2 value-to-modify) (&-> *pc-settings* skip-movies?)) (set! (-> *misc-options* 3 value-to-modify) (&-> *pc-settings* speedrunner-mode?)) (set! (-> *camera-options* 0 value-to-modify) (&-> *pc-settings* first-camera-h-inverted?)) @@ -774,7 +774,7 @@ (set! (-> *gfx-ps2-options* 0 value-to-modify) (&-> *progress-carousell* int-backup)) (set! (-> *gfx-ps2-options* 1 value-to-modify) (&-> *progress-carousell* int-backup)) (set! (-> *gfx-ps2-options* 2 value-to-modify) (&-> *pc-settings* ps2-parts?)) - ;(set! (-> *gfx-ps2-options* 3 value-to-modify) (&-> *pc-settings* force-envmap?)) + (set! (-> *gfx-ps2-options* 3 value-to-modify) (&-> *pc-settings* force-envmap?)) ;(set! (-> *gfx-ps2-options* 3 value-to-modify) (&-> *pc-settings* force-actors?)) (set! (-> *sound-options-pc* 0 value-to-modify) (&-> *setting-control* default sfx-volume)) @@ -2279,7 +2279,7 @@ ) (((progress-screen gfx-ps2-options)) (hide-progress-icons) - (draw-options self 115 25 0.72) + (draw-options self 115 25 0.67) ) (((progress-screen game-settings)) (hide-progress-icons) diff --git a/goal_src/jak1/pc/subtitle.gc b/goal_src/jak1/pc/subtitle.gc index 6376f60514..a60a22a738 100644 --- a/goal_src/jak1/pc/subtitle.gc +++ b/goal_src/jak1/pc/subtitle.gc @@ -566,7 +566,7 @@ ;; set font settings. (set! (-> self font origin x) (* (- 1.0 (-> *SUBTITLE-bank* width)) 256)) - (set! (-> self font origin y) (* (if (not (movie?)) + (set! (-> self font origin y) (* (if (or (>= (-> *pc-settings* aspect-ratio) ASPECT_16X9) (not (movie?))) (-> *SUBTITLE-bank* hint-height) (-> *SUBTITLE-bank* height) ) 224))