diff --git a/common/custom_data/Tfrag3Data.h b/common/custom_data/Tfrag3Data.h index a87f046b3..1ea169d75 100644 --- a/common/custom_data/Tfrag3Data.h +++ b/common/custom_data/Tfrag3Data.h @@ -73,7 +73,7 @@ struct MemoryUsageTracker { void add(MemoryUsageCategory category, u32 size_bytes) { data[category] += size_bytes; } }; -constexpr int TFRAG3_VERSION = 32; +constexpr int TFRAG3_VERSION = 33; // These vertices should be uploaded to the GPU at load time and don't change struct PreloadedVertex { diff --git a/decompiler/level_extractor/MercData.h b/decompiler/level_extractor/MercData.h index 5e71bb908..5597ffff0 100644 --- a/decompiler/level_extractor/MercData.h +++ b/decompiler/level_extractor/MercData.h @@ -181,7 +181,8 @@ struct MercExtraInfo { }; constexpr int kTextureScrollEffectBit = 1; -constexpr int kRippleEffectBit = 4; // true in jak 1 and jak 2 +constexpr int kTransEffectBitJak1 = 2; // so far only confirmed for jak 1 +constexpr int kRippleEffectBit = 4; // true in jak 1 and jak 2 struct MercEffect { //((frag-geo merc-fragment :offset-assert 0) ;; ? diff --git a/decompiler/level_extractor/extract_merc.cpp b/decompiler/level_extractor/extract_merc.cpp index cc013cf9d..ee0f69c43 100644 --- a/decompiler/level_extractor/extract_merc.cpp +++ b/decompiler/level_extractor/extract_merc.cpp @@ -885,6 +885,10 @@ ConvertedMercEffect convert_merc_effect(const MercEffect& input_effect, can_be_modified = true; } + if (version == GameVersion::Jak1 && (input_effect.effect_bits & kTransEffectBitJak1)) { + use_alpha_blend = true; + } + handle_frag(debug_name, ctrl_header, frag, frag_ctrl, merc_state, result.vertices, merc_memories[memory_buffer_toggle], can_be_modified, combined_lump4_addr, fi); u32 vert_count = frag.lump4_unpacked.size() / 3; diff --git a/goal_src/jak1/engine/common-obs/rigid-body.gc b/goal_src/jak1/engine/common-obs/rigid-body.gc index dc8c0c415..fcd0b49a8 100644 --- a/goal_src/jak1/engine/common-obs/rigid-body.gc +++ b/goal_src/jak1/engine/common-obs/rigid-body.gc @@ -451,7 +451,7 @@ (+! (-> obj sim-time-remaining) (* 0.0033333334 (the float (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)))) ) - (let ((f30-0 0.016666668) + (let ((f30-0 (* DISPLAY_FPS_RATIO 0.016666668)) ;; changed for high fps (f28-0 (* 0.0033333334 (the float (logand #xffffff (-> *display* base-frame-counter))))) ) (while (>= (-> obj sim-time-remaining) (* 0.5 f30-0))