From fea7d3a15d1a54fd020af30d6a712da722dea998 Mon Sep 17 00:00:00 2001 From: Nick0778 <149975116+Nick0778@users.noreply.github.com> Date: Sun, 26 Apr 2026 17:10:15 -0300 Subject: [PATCH] [jak3] Fix Daxter's death quotes scenes not playing (#4243) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR fixes a bug in `target-death.gc` that was causing Daxter's death quotes scenes to not play in OpenGoal. Basically, these scenes weren’t working because `sv-96` was assigned an invalid level, and as a result the `s4-1` check always returned `#f`. So, the `(when s4-1 ...)` block that contains the logic for these scenes was never executed. png1 ## Before the fix: https://github.com/user-attachments/assets/58e2f412-814b-40ff-ab64-d22054a7232e ## After the fix: https://github.com/user-attachments/assets/bf6ac0da-1a62-4cb4-b363-20af898dac7f --- decompiler/config/jak3/ntsc_v1/stack_structures.jsonc | 5 +++-- goal_src/jak3/engine/target/target-death.gc | 2 +- .../reference/jak3/engine/target/target-death_REF.gc | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc b/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc index 4138d2091e..ba504a0210 100644 --- a/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc +++ b/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc @@ -195,8 +195,9 @@ "(code target-hit)": [[16, "vector"]], "apply-pos-from-entity": [[208, "collide-query"]], "target-death-main": [ - [16, "event-message-block"], - [96, ["array", "level", 1]] + [16, "event-message-block"] + // this wrong stack cast was the reason Daxter's death quotes scenes didn't work + //[96, ["array", "level", 1]] ], "find-nearest-focusable": [[48, "vector"]], "target-gun-joint-pre0": [ diff --git a/goal_src/jak3/engine/target/target-death.gc b/goal_src/jak3/engine/target/target-death.gc index b563614365..75ea4f5d5f 100644 --- a/goal_src/jak3/engine/target/target-death.gc +++ b/goal_src/jak3/engine/target/target-death.gc @@ -1906,7 +1906,7 @@ (apply-settings *setting-control*) (flag-setup) (let ((sv-96 (the-as level #f))) - (art-group-get-by-name *level* "daxter-highres" (new 'stack-no-clear 'array 'level 1)) + (art-group-get-by-name *level* "daxter-highres" (& sv-96)) (let ((s4-1 (if (and sv-96 (nonzero? (-> sv-96 entity)) (> (-> sv-96 entity length) 0)) (-> sv-96 entity data 0 entity) ) diff --git a/test/decompiler/reference/jak3/engine/target/target-death_REF.gc b/test/decompiler/reference/jak3/engine/target/target-death_REF.gc index bf42a7d7bc..264a66cff6 100644 --- a/test/decompiler/reference/jak3/engine/target/target-death_REF.gc +++ b/test/decompiler/reference/jak3/engine/target/target-death_REF.gc @@ -1949,7 +1949,7 @@ (apply-settings *setting-control*) (flag-setup) (let ((sv-96 (the-as level #f))) - (art-group-get-by-name *level* "daxter-highres" (new 'stack-no-clear 'array 'level 1)) + (art-group-get-by-name *level* "daxter-highres" (& sv-96)) (let ((s4-1 (if (and sv-96 (nonzero? (-> sv-96 entity)) (> (-> sv-96 entity length) 0)) (-> sv-96 entity data 0 entity) )