Version Check and Punch Glitch: Difference between pages

From JakSpeedruns Wiki
(Difference between pages)
Jump to navigation Jump to search
No edit summary
 
 
Line 1: Line 1:
This page is for determining version differences of the Jak and Daxter games.
'''Punch glitch''' is a bug that is exclusively encountered on the PlayStation 3 Jak and Daxter Collection.


== PlayStation 2 ==
== Technical ==
=== Jak and Daxter: The Precursor Legacy ===
During the development of the PC port for Jak and Daxter: The Precursor Legacy, it was discovered that punch glitch was occurring.
[[File:PS2 Jak and Daxter Disc 2.PNG|thumb|The number 2 on the inner ring of the disc indicates that this is a Black Label #2 (NTSC-U/C) disc, which does have Citadel Skip.]]
If you have a North American Black Label (NTSC-U/C) copy of [[Jak and Daxter: The Precursor Legacy]], you may or may not have Citadel Skip. If you look on the back of the disc, you will find a number on the inner ring. This number indicates your version of the game and whether or not you have Citadel Skip. If you see a 1 or a 2, Citadel Skip is not patched and will work. If you see a 3 (or higher), Citadel Skip is patched and will not work.


{| class="wikitable" style="margin:left"
<blockquote>
|-
The issue is the acos in logic-target.gc. In PCSX2/PS2 it can never quite return 0.0. But on PC it does, and it causes 0/0 instead of 0/very-small-number. This is used as the input to a slerp and it ends up setting the output quaternion to 0 0 0 0. Over the next 2 frames, this completely breaks the dir-targ and unknown-quaternion00 and the target/camera rotation matrix ends up being identity. This sudden change rotates jak's velocity so it is entirely in the global x direction.
! Version !! Citadel Skip
|-
| Black Label #1 (NTSC-U/C) || Yes
|-
| Black Label #2 (NTSC-U/C) || Yes
|-
| Black Label #3 (NTSC-U/C) || No
|-
| Greatest Hits (NTSC-U/C) || No
|-
| Black Label (PAL) || Yes
|-
| Platinum Label (PAL) (NTSC-U/C) || Yes
|-
| Black Label (NTSC-J/Korean) (NTSC-U/C) || No
|-
| Silver Label (NTSC-J) || No
|}


== PlayStation 3 ==
My understanding is that this should only happen when the dir-targ aligns with jak's velocity exactly. It may only be catastrophic if the camera is also aligned so that pushing forward on the stick will move jak in this direction.
All Jak and Daxter games on the PS3 versions suffer from [[Punch Glitch|punch glitch]] and is not recommended for speedruns.


'''Jak and Daxter Collection (NTSC-U/C)''' - This version '''DOES NOT HAVE''' Citadel Skip.
I don't think the location has anything to do with it. It's possible that it only happens on ground that's perfectly level but I don't know. Instead, I think it tends to happen in places where people are lined up well with the camera and punching in/out of the camera exactly.


'''Jak and Daxter Trilogy (PAL)''' - This version '''DOES NOT HAVE''' Citadel Skip.
- Water111
</blockquote>


== PlayStation 4 ==
In 2017, the first four Jak and Daxter games were virtually released for the PlayStation 4. These releases turned out to be PlayStation 2 versions of the games that were emulated on the PlayStation 4. This means that the PlayStation 4 releases are the same as the PlayStation 2 releases.


The following code was added to <code>acos</code> in <code>trigonometry.gc</code> to fix the problem:


== PlayStation 5 ==
<nowiki>
(defun acos ((arg0 float))
  "Inverse cosine. Returns rotation units"
  (let ((result (- 16384.000000 (asin arg0))))
    (#when PC_PORT
      ;; to avoid punch glitch:
      ;; (note: it might be a better fix to change the global rounding mode,
      ;;  but it's not super clear to me that the mode picked by PCSX2 is
      ;;  more accurate than normal in all cases. So, we'll do this for now.)
      (when (= result 0.0)
        (set! result 0.00000000001)
        )
      )
    result
    )
  )</nowiki>


== OpenGOAL PC Port ==
== Discovery ==
 
== Other Notes ==
 
 
{{Glitches}}

Revision as of 00:48, 19 February 2024

Punch glitch is a bug that is exclusively encountered on the PlayStation 3 Jak and Daxter Collection.

Technical

During the development of the PC port for Jak and Daxter: The Precursor Legacy, it was discovered that punch glitch was occurring.

The issue is the acos in logic-target.gc. In PCSX2/PS2 it can never quite return 0.0. But on PC it does, and it causes 0/0 instead of 0/very-small-number. This is used as the input to a slerp and it ends up setting the output quaternion to 0 0 0 0. Over the next 2 frames, this completely breaks the dir-targ and unknown-quaternion00 and the target/camera rotation matrix ends up being identity. This sudden change rotates jak's velocity so it is entirely in the global x direction.

My understanding is that this should only happen when the dir-targ aligns with jak's velocity exactly. It may only be catastrophic if the camera is also aligned so that pushing forward on the stick will move jak in this direction.

I don't think the location has anything to do with it. It's possible that it only happens on ground that's perfectly level but I don't know. Instead, I think it tends to happen in places where people are lined up well with the camera and punching in/out of the camera exactly.

- Water111


The following code was added to acos in trigonometry.gc to fix the problem:

(defun acos ((arg0 float))
  "Inverse cosine. Returns rotation units"
  (let ((result (- 16384.000000 (asin arg0))))
    (#when PC_PORT
      ;; to avoid punch glitch:
      ;; (note: it might be a better fix to change the global rounding mode,
      ;;  but it's not super clear to me that the mode picked by PCSX2 is
      ;;  more accurate than normal in all cases. So, we'll do this for now.)
      (when (= result 0.0)
        (set! result 0.00000000001)
        )
      )
    result
    )
  )

Discovery

Other Notes

Glitches, Bugs, Exploits, and Secrets
Jak and Daxter: The Precursor Legacy Audio Pause GlitchBridge BlastDark GlitchDeveloper PicturesDupe StateFlut Flut EscapeGame CrashGhost GlitchHard FishIdle DeloadLine GlitchMoon WalkOrb Duplication GlitchPause BufferPunch GlitchStatue GlitchVoid OutWalking While TalkingZombie GlitchZoomer Escape
Jak II Developer PicturesGame CrashGhost TownInvisibility GlitchInvulnerability GlitchLine GlitchOrb Duplication GlitchPause BufferPeacemaker StackingPunch GlitchStatue GlitchZombie Glitch
Jak 3 Developer PicturesGame CrashInvisibility GlitchInvulnerability GlitchLine GlitchOrb Duplication GlitchPeacemaker StackingPunch GlitchStatue GlitchZombie Glitch
Jak X Line Glitch
Daxter placeholder text
Jak and Daxter: The Lost Frontier placeholder text