Idle Deload: Difference between revisions

From JakSpeedruns Wiki
Jump to navigation Jump to search
No edit summary
 
(15 intermediate revisions by the same user not shown)
Line 1: Line 1:
An '''idle deload''' is a bug in the game's level loading system that can be used to load in fail-safe/stored checkpoints and levels. If performed correctly you will generally see your current level deload to a black void and as the pause menu opens your location should change to the next checkpoint the game has available.
[[File:Idle Deload.gif|frame|An idle deload being performed in Forbidden Jungle to get to Sentinel Beach.]]
An '''idle deload''' is a bug in the game's level loading system that can be used to load in fail-safe/stored checkpoints and levels. If performed correctly, you will typically see your current level deload to a black void which Jak will then fall into. When Jak respawns, he will be in the newly loaded level.


Idle deloading is used for Klaww Skip, Lava Tube Skip, and for Citadel Skip only in All Orbs and All Flies categories.
Idle deloading is used for [[Klaww Skip]], [[Lava Tube Skip]], and for [[Citadel Skip]] but only in the [[All Orbs]] and [[All Flies]] categories.


== Technical ==
== Technical ==
Line 7: Line 8:
<youtube>https://www.youtube.com/watch?v=yJzPplb1U4A</youtube>
<youtube>https://www.youtube.com/watch?v=yJzPplb1U4A</youtube>


On a technical level, an idle deload is when the game's backup load state sequence is interrupted and only the restore function is executed.
On a technical level, an idle deload is when the game's backup load state sequence is interrupted and only the restore functions are executed.


During cutscenes, certain objects or characters need to be moved around or deloaded as the cutscene plays out. After the cutscene is over, the game needs to be able to return all the characters and objects to their original positions before the cutscene was started. In order to do this, the game creates a backup load state right before the cutscene begins. It then refers to the data within the backup load state after the cutscene is finished to properly return everything to how it was before the cutscene started. This backup load state process is controlled by the game's animation system, which is also used by 3 other events: Jak dying, Jak using the warp gate, and Jak performing an idle animation after 30 seconds of standing still. This means that these 3 other events can trigger the backup load state sequence.
During cutscenes, certain objects or characters need to be moved around or deloaded as the cutscene plays out. After the cutscene is over, the game needs to be able to return all the characters and objects to their original positions before the cutscene was started. In order to do this, the game creates a backup load state right before the cutscene begins. It then refers to the data within the backup load state after the cutscene is finished to properly return everything to how it was before the cutscene started. This backup load state process is controlled by the game's animation system, which is also used by 3 other events: Jak dying, Jak using the warp gate, and Jak performing an idle animation after 30 seconds of standing still. This means that these 3 other events can trigger the backup load state sequence.
Line 20: Line 21:
; ja-abort-spooled-anim : This ends the sounds and animations for the event. It also calls the function "restore-load-state-and-cleanup".
; ja-abort-spooled-anim : This ends the sounds and animations for the event. It also calls the function "restore-load-state-and-cleanup".
; restore-loads-state-and-cleanup : Loads in the stored backup load state.
; restore-loads-state-and-cleanup : Loads in the stored backup load state.
If the player holds the Start, L1, R1, Triangle, Circle, Cross, or Square button while Jak does his idle animation, this will trigger '''Function Set 2''' before '''Function Set 1'''. This means that the backup load state is not updated with Jak's current data. Instead, only the restore sequence is executed, meaning whatever data happens to be in the current backup load state is loaded in.
Here is an example. If Jak dies in Sentinel Beach, this counts as one of the events that utilizes the animation system, meaning a backup load state has been created for Jak in Sentinel Beach. If Jak then walks to Forbidden Jungle, holds the Circle button for 30 seconds, then does his idle animation, it will skip to Function Set 2 and restore the data from when Jak died in Sentinel Beach. Forbidden Jungle will deload (since there is no Forbidden Jungle data in the backup load state) and Sentinel Beach will load in.


== Discovery ==
== Discovery ==
The idle deload was discovered by headstrong1290 on accident in [https://youtu.be/59dhHVL8Frs?si=6-EoxVJmVO18-Gky&t=1219 February 2016]. Blahpy figured out how to reproduce it a few days later. On August 22, 2021, Snugggles would discover the "button holding" method of the idle deload, which is the most commonly used method today.  
[[File:Idle Deload Button Hold Discovery.jpg|thumb|Snugggles posts about the Button Hold method in Discord.]]
The idle deload was [https://www.twitch.tv/videos/49764810 discovered by headstrong1290] on accident in February 23, 2016. Three days later, [https://www.youtube.com/watch?v=alTML2riGVc Blahpy figured out how to reproduce it]. On August 22, 2021, Snugggles would discover the "button holding" method of the idle deload, which is the most commonly used method today.  


Idle deload's first useful application for speedrunning was discovered by Boomer and yankee027 while accidentally doing Klaww Skip.
Idle deload's first useful application for speedrunning was discovered by Boomer and yankee027 while accidentally doing Klaww Skip.
{{Glitches}}

Latest revision as of 06:26, 19 February 2024

An idle deload being performed in Forbidden Jungle to get to Sentinel Beach.

An idle deload is a bug in the game's level loading system that can be used to load in fail-safe/stored checkpoints and levels. If performed correctly, you will typically see your current level deload to a black void which Jak will then fall into. When Jak respawns, he will be in the newly loaded level.

Idle deloading is used for Klaww Skip, Lava Tube Skip, and for Citadel Skip but only in the All Orbs and All Flies categories.

Technical

On a technical level, an idle deload is when the game's backup load state sequence is interrupted and only the restore functions are executed.

During cutscenes, certain objects or characters need to be moved around or deloaded as the cutscene plays out. After the cutscene is over, the game needs to be able to return all the characters and objects to their original positions before the cutscene was started. In order to do this, the game creates a backup load state right before the cutscene begins. It then refers to the data within the backup load state after the cutscene is finished to properly return everything to how it was before the cutscene started. This backup load state process is controlled by the game's animation system, which is also used by 3 other events: Jak dying, Jak using the warp gate, and Jak performing an idle animation after 30 seconds of standing still. This means that these 3 other events can trigger the backup load state sequence.

There are two sets of functions that control this process:

Function Set 1

ja-play-spooled-anim
This function loads sounds and animations needed for the event. It also calls the function "backup-load-state-and-set-cmds".
backup-load-state-and-set-cmds
This function creates and stores a backup of Jak's current load state (level buffer state, level visibility data, and object names and statuses).

Function Set 2

ja-abort-spooled-anim
This ends the sounds and animations for the event. It also calls the function "restore-load-state-and-cleanup".
restore-loads-state-and-cleanup
Loads in the stored backup load state.


If the player holds the Start, L1, R1, Triangle, Circle, Cross, or Square button while Jak does his idle animation, this will trigger Function Set 2 before Function Set 1. This means that the backup load state is not updated with Jak's current data. Instead, only the restore sequence is executed, meaning whatever data happens to be in the current backup load state is loaded in.

Here is an example. If Jak dies in Sentinel Beach, this counts as one of the events that utilizes the animation system, meaning a backup load state has been created for Jak in Sentinel Beach. If Jak then walks to Forbidden Jungle, holds the Circle button for 30 seconds, then does his idle animation, it will skip to Function Set 2 and restore the data from when Jak died in Sentinel Beach. Forbidden Jungle will deload (since there is no Forbidden Jungle data in the backup load state) and Sentinel Beach will load in.

Discovery

Snugggles posts about the Button Hold method in Discord.

The idle deload was discovered by headstrong1290 on accident in February 23, 2016. Three days later, Blahpy figured out how to reproduce it. On August 22, 2021, Snugggles would discover the "button holding" method of the idle deload, which is the most commonly used method today.

Idle deload's first useful application for speedrunning was discovered by Boomer and yankee027 while accidentally doing Klaww Skip.


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