[jak3] Small bug fixes (#3933)

Fixes the pillars being transparent (but is a bit of a hack), the desert
sand not having texture filtering, and the "No memory card" on the title
screen with debug mode off.

---------

Co-authored-by: water111 <awaterford1111445@gmail.com>
This commit is contained in:
water111
2025-06-01 13:24:28 -04:00
committed by GitHub
parent b6649d2433
commit 228dfd82d1
3 changed files with 19 additions and 2 deletions
@@ -957,6 +957,16 @@ ConvertedMercEffect convert_merc_effect(const MercEffect& input_effect,
use_alpha_blend = true;
}
// workaround for https://github.com/open-goal/jak-project/issues/3682
// when the pillar is very close to the screen, they fade it out, to avoid blocking the camera.
// but, for unknown reasons, they move this to an alpha bucket as well (normally not required
// for fade), but rely on merc disabling alpha blend. OpenGOAL's detection of alpha blending
// just checks the bucket, but there's more logic than this in the shader. Rather than figuring
// this out, just fix this specific case for now:
if (debug_name == "comb-pillar-lod0") {
use_alpha_blend = false;
}
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;
@@ -415,7 +415,10 @@ void Hfrag::render_hfrag_level(Hfrag::HfragLevel* lev,
continue; // no need to bind texture.
}
glBindTexture(GL_TEXTURE_2D, lev->montage_texture[bucket_idx].fb.texture());
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); // HACK rm
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
const auto& bucket = lev->hfrag->buckets[bucket_idx];
for (u32 corner_idx : bucket.corners) {
+5 -1
View File
@@ -1435,7 +1435,11 @@
(defmethod respond-progress ((this menu-sub-menu-option) (arg0 progress) (arg1 symbol))
(let ((s4-0 *progress-work*))
(when (and (not (-> s4-0 secrets-unlocked))
(or (= (-> arg0 current-options) *title-pc*)
(or
;; for some reason we hit this case on the non-debug first time title screen.
;; we don't have to worry about insufficient memory card space, so this is just
;; commented out.
;; (= (-> arg0 current-options) *title-pc*)
(= (-> arg0 current-options) *unlocked-secrets*)
(= (-> arg0 current-options) *select-scene-options*)
(= (-> arg0 current-options) *select-start-options*)