Dupe State

Dupe state is a "state" that Jak can enter while performing the duplication exploit on scout flies which allows for a degree of arbitrary code execution. The state is essentially a buffer overflow in the actor
heap involving the hint detection system that leads to undefined behavior.
The known side effects and behaviors that can occur while in dupe state include seemingly random game crashes, infinite loops, statue glitch with red and yellow eco, baby spiders in Spider Cave not hatching, orb vents not opening while powered with blue eco, Jak's idle animation being disabled, and collectable entities or actors not disappearing after collecting them.
Dupe state's broken hint detection can travel across save files, which is a trait not seen in any other known exploit in the game.
Technical

*hint-semaphore*
now points to med-res-level-1
.Technical write-up by Hat Kid.
There is a variable called *hint-semaphore*
that is either always set to #f
or, if a hint is playing, a process is spawned for that hint, and *hint-semaphore*
stores a pointer to that hint. When you perform the scout fly dupe, the process pointer stored in *hint-semaphore*
no longer points to the hint process, because that got killed by loading the save file, but *hint-semaphore*
is still storing that value. Because *hint-semaphore*
is not #f
, the subtitle debug code that displays the hint in the top left is de-referencing that pointer. In this screenshot (loading a Geyser save), the process pointer that was stored just so happens to now point to the process for the med-res-level-1
entity, so the subtitle debug code is de-referencing the pointer as if it were a level-hint, which happens to lead to the med-res-level's cspace-array
(and the text ID is pointing to its root).
Tutorial
To activate dupe state, you need to load a save file (without saving) on a specific frame of a spin kick while collecting a scout fly. Once you load back in, the dupe state will be active. It works best on Geyser Rock with the first scout fly you encounter. You are able to load any save file once you have the initial spin kick set up, allowing the state to carry over with Jak to any level you load him in to.
Discovery
Dupe state was inadvertently found along side the discovery of Precursor Orb, Scout Fly, and Power Cell duplication in Jak and Daxter: The Precursor Legacy, which was discovered by RNGPenguin on January 14, 2018. While other runners attempted to perform the duplication exploit, some of them reported strange side effects when failing the dupe and reloading the save file to try again. These side effects were listed earlier at the top of the page. Two days later on January 16, 2018, Ruh found a consistent setup to cause the strange side effects and coined the name Dupe State.