Add extended environment mapping option to progress and enable it by default + other bug fixes (#2161)

![image](https://user-images.githubusercontent.com/7569514/214192592-d584e955-9d54-4092-94ee-1cbe12b071e8.png)

Note: if you had the option disabled, it will be enabled when you first
start the game again. You will have to turn it off again if you want it
disabled.

Also fixes #2150 and fixes #1738 and fixes #2145
This commit is contained in:
ManDude
2023-01-24 20:22:47 +00:00
committed by GitHub
parent fdcd67b095
commit 213f3bad20
15 changed files with 63 additions and 42 deletions
@@ -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;
+6 -4
View File
@@ -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;
+3 -1
View File
@@ -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;
@@ -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)
+2 -8
View File
@@ -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?)))
+2 -2
View File
@@ -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
+6 -3
View File
@@ -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
@@ -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)
)
)
+2
View File
@@ -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)
)
)
@@ -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))
)
+1 -1
View File
@@ -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))
+11 -7
View File
@@ -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)
+11 -3
View File
@@ -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?))
+4 -4
View File
@@ -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)
+1 -1
View File
@@ -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))