Crash: Difference between revisions

1,403 bytes added ,  5 years ago
Minor rework, and added a list of crash handler information on the known crashes.
(Added Pileated Snagret fight crash.)
(Minor rework, and added a list of crash handler information on the known crashes.)
Line 2: Line 2:
In computing, a '''crash''', sometimes also referred to as a '''freeze''', happens when a piece of software stops working properly and can not continue running. This is usually because the code has done something impossible, like trying to divide by zero, or read from an invalid memory position. Ideally, most software will be programmed in such a way that the final user can almost never cause the program to do something illegal, but some [[glitches]] or exploits can allow the user to do so. The {{ps}} also have a few glitches, exploits, and hacks that allow the player to crash the game.
In computing, a '''crash''', sometimes also referred to as a '''freeze''', happens when a piece of software stops working properly and can not continue running. This is usually because the code has done something impossible, like trying to divide by zero, or read from an invalid memory position. Ideally, most software will be programmed in such a way that the final user can almost never cause the program to do something illegal, but some [[glitches]] or exploits can allow the user to do so. The {{ps}} also have a few glitches, exploits, and hacks that allow the player to crash the game.


When a crash happens in a ''Pikmin'' game, it stops responding, and the player can do almost nothing except shut down the console and boot it back up. Crashes in ''Pikmin'' games are very rare, and the player will likely need to do them on purpose, but a corrupted or damaged game, [[saved game]] data, or system can all cause crashes. In this case, they should be replaced or repaired.
When a crash happens in a ''Pikmin'' game, it stops responding, and the player can do almost nothing except shut down the console and boot it back up. Crashes in ''Pikmin'' games are very rare, and the player will likely need to do them on purpose, but a corrupted or damaged game, system, or [[saved game]] data can all cause crashes. In this case, they should be replaced or repaired.


Besides crashing, some scenarios can also happen where the player is "softlocked". In these cases, the game continues playing and responding like normal, but it is in a state that does not allow the player to make any progress.
Besides crashing, some scenarios can also happen where the player is "softlocked". In these cases, the game continues playing and responding like normal, but it is in a state that does not allow the player to make any progress.
Line 15: Line 15:


=== ''Pikmin 2'' ===
=== ''Pikmin 2'' ===
{{game help|p2|Write down the reason for every crash, as provided by the crash handler.}}
{{game help|p2|Add the missing videos and crash handler data.}}
* [[Glitches in Pikmin 2#Treasure delivery crash|Treasure delivery crash]]: If the player pauses the game in the same [[frame]] as a [[treasure]] collection [[cutscene]] starts, and then chooses to quit the cave, the game will crash shortly after.
The following is a collection of known crashes in ''Pikmin 2''. For the ones where the [[#Crash handler|crash handler]] can be summoned, the crash reason and the developer information are also included.
* [[Glitches in Pikmin 2#Minor|Glutton's Kitchen crashes]]: It is possible for the game to crash when the player is playing on [[Glutton's Kitchen]] sublevel 6. The reasons for this are not known.
 
* [[Glitches in Pikmin 2#Minor|Cavernous Abyss loading crash]]: For unknown reasons, the game can crash while trying to load [[Cavernous Abyss]].
{| class="wikitable sortable"
* [[Glitches in Pikmin 2#Minor|Pileated Snagret fight crash]]: For unknown reasons, the game can crash while fighting a [[Pileated Snagret]].
! Crash || Basic description || Crash reason || Developer information || Video
* [[Glitches in Pikmin 2#Petrified Volatile Dweevil suicide|Petrified Volatile Dweevil suicide]]: In the Japanese [[region|version]], using an [[ultra-bitter spray]] on a Volatile Dweevil that is about to explode will cause the game to crash.
|-
* [[100 Pikmin limit#Onion discovery|Onion discovery crash]]: When the player approaches the [[Onion#Red|Red Onion]] with Louie for the first time, it produces a sprout. If there are already [[100 Pikmin limit|100 Pikmin]] in the field, then the game tries to remove one, but there are some [[100 Pikmin limit#Common scenarios|scenarios]] where a Pikmin cannot be removed. If all 100 Pikmin cannot be removed, then the Red Onion fails to produce the sprout, and the game crashes.{{cite youtube|oQJTEuOak-4|of the Onion discovery crash}}
| [[Glitches in Pikmin 2#Treasure delivery crash|Treasure delivery crash]]
* Cave extinction crash: If the player is inside a cave and chooses to delve deeper in the same [[frame]] as a [[Pikmin extinction]] occurs, the game will crash shortly after.{{cite youtube|11mPwK5ayGs|of the Cave extinction crash}}
| If the player pauses the game in the same [[frame]] as a [[treasure]] collection [[cutscene]] starts, and then chooses to quit the cave, the game will crash shortly after.
* Softlocked leader during treasure collection crash: If the player falls out of bounds by using the [[Glitches in Pikmin 2#Seesaw block glitch|seesaw block glitch]] and [[lie down|lays down]] while falling, the leader will sometimes lose the light on his helmet. Then, the player must immediately switch leaders, start carrying a treasure, and let this leader die. The player will take control of the leader with the missing light again, but the screen will be glitched out. Once the treasure is collected, the game will crash.{{cite youtube|X_3K6nFSRDM|of the softlocked leader during treasure collection crash}}
|
* Pellet Posy crash: Some [[Pellet Posy|Pellet Posies]] will change colors to match what Pikmin the player has unlocked. If the player has not unlocked any Pikmin yet, the Pellet Posy has no color to switch to, so the game crashes. Pellet Posies in the Piklopedia can also cause this crash.{{cite youtube|_CC9PUnO4J0|of the Pellet Posy crash}}{{cite youtube|Tay0rFSt-yA|of the Pellet Posy in Piklopedia crash}}
|
* Missing sprout crash: When the player approaches the [[Onion#Red|Red Onion]] with Louie for the first time, a 20-second timer begins. If the timer finishes before Louie plucks the sprout, a [[cutscene]] plays that focuses on the sprout that the [[Onion#Red|Red Onion]] produced, which is meant to inform the player on how to pluck the sprout. However, it is possible for no sprout to exist when this cutscene plays, which causes a crash.{{cite youtube|UVzJXxUOFHc|of the missing sprout crash}}
| [https://www.youtube.com/watch?v=R8Gst5gWvYM YouTube video]
* Missing paper bag crash: When 15 Pikmin are in the field for the first time, a 3-minute timer begins. If the timer finishes before the first paper bag is crushed, a [[cutscene]] plays that focuses on the 15-weight paper bag, which is meant to inform the player on how to crush it with weight. However, it is possible to be in a different [[area]] when the cutscene is meant to play, which causes a crash, since the 15-weight paper bag is not located in other areas.{{cite youtube|YSiGdVAktXo|of the missing paper bag crash}}
|-
* Disabling a wrong cutscene timer crash: Certain actions in the game cause cutscene timers to be disabled. For example, plucking the first Red Pikmin disables the 20-second timer mentioned in the missing sprout crash description, and crushing the first paper bag disables the 3-minute timer mentioned in the missing paper bag crash description. However, it is possible to disable either timer while a different timer is counting down. This causes a crash. Note that letting Pikmin approach the player for the first time disables a separate 1-second timer, so this can also be involved in a crash.{{cite youtube|rname=handler|cPqyk5PyL-E|of the crash handler in action|published={{date|3|August|2018}}|retrieved={{date|4|August|2018}}}}
| [[Glitches in Pikmin 2#Minor|Glutton's Kitchen crashes]]
| It is possible for the game to crash when the player is playing on [[Glutton's Kitchen]] sublevel 6. The reasons for this are not known.
| Data storage interrupt exception
|
| [https://clips.twitch.tv/ExuberantManlyLorisBleedPurple Twitch clip 1], [https://www.twitch.tv/videos/100143204 2], [https://clips.twitch.tv/FamousStrongPelicanKappaClaus 3]
|-
| [[Glitches in Pikmin 2#Minor|Cavernous Abyss loading crash]]
| For unknown reasons, the game can crash while trying to load [[Cavernous Abyss]].
|
|
| [https://clips.twitch.tv/GenerousUglyPancakeBatChest Twitch clip]
|-
| [[Glitches in Pikmin 2#Minor|Pileated Snagret fight crash]]
| For unknown reasons, the game can crash while fighting a [[Pileated Snagret]].
| {{w|Assertion (software development)|Assertion}}
| <code>P2Assert in "interactPiki.cpp" on line 1206</code>
| [https://www.youtube.com/watch?v=uS7R4WN6D0E YouTube video]
|-
| [[Glitches in Pikmin 2#Petrified Volatile Dweevil suicide|Petrified Volatile Dweevil suicide]]
| In the Japanese [[region|version]], using an [[ultra-bitter spray]] on a Volatile Dweevil that is about to explode will cause the game to crash.
|
|
|
|-
| [[100 Pikmin limit#Onion discovery|Onion discovery crash]]
| When the player approaches the [[Onion#Red|Red Onion]] with Louie for the first time, it produces a sprout. If there are already [[100 Pikmin limit|100 Pikmin]] in the field, then the game tries to remove one, but there are some [[100 Pikmin limit#Common scenarios|scenarios]] where a Pikmin cannot be removed. If all 100 Pikmin cannot be removed, then the Red Onion fails to produce the sprout, and the game crashes.
|
|
| [https://youtube.com/watch?v=oQJTEuOak-4 YouTube video]
|-
| Cave extinction crash
| If the player is inside a cave and chooses to delve deeper in the same [[frame]] as a [[Pikmin extinction]] occurs, the game will crash shortly after.
|
|
| [https://youtube.com/watch?v=11mPwK5ayGs YouTube video]
|-
| Softlocked leader during treasure collection crash
| If the player falls out of bounds by using the [[Glitches in Pikmin 2#Seesaw block glitch|seesaw block glitch]] and [[lie down|lays down]] while falling, the leader will sometimes lose the light on his helmet. Then, the player must immediately switch leaders, start carrying a treasure, and let this leader die. The player will take control of the leader with the missing light again, but the screen will be glitched out. Once the treasure is collected, the game will crash.
|
|
| [https://youtube.com/watch?v=X_3K6nFSRDM YouTube video]
|-
| Pellet Posy crash
| Some [[Pellet Posy|Pellet Posies]] will change colors to match what Pikmin the player has unlocked. If the player has not unlocked any Pikmin yet, the Pellet Posy has no color to switch to, so the game crashes. Pellet Posies in the Piklopedia can also cause this crash.
|
|
| [https://youtube.com/watch?v=_CC9PUnO4J0 YouTube video 1], [https://youtube.com/watch?v=Tay0rFSt-yA 2]
|-
| Missing sprout crash
| When the player approaches the [[Onion#Red|Red Onion]] with Louie for the first time, a 20-second timer begins. If the timer finishes before Louie plucks the sprout, a [[cutscene]] plays that focuses on the sprout that the [[Onion#Red|Red Onion]] produced, which is meant to inform the player on how to pluck the sprout. However, it is possible for no sprout to exist when this cutscene plays, which causes a crash.
|
|
| [https://youtube.com/watch?v=UVzJXxUOFHc YouTube video]
|-
| Missing paper bag crash
| When 15 Pikmin are in the field for the first time, a 3-minute timer begins. If the timer finishes before the first paper bag is crushed, a [[cutscene]] plays that focuses on the 15-weight paper bag, which is meant to inform the player on how to crush it with weight. However, it is possible to be in a different [[area]] when the cutscene is meant to play, which causes a crash, since the 15-weight paper bag is not located in other areas.
|
|
| [https://youtube.com/watch?v=YSiGdVAktXo YouTube video]
|-
| Disabling a wrong cutscene timer crash
| Certain actions in the game cause cutscene timers to be disabled. For example, plucking the first Red Pikmin disables the 20-second timer mentioned in the missing sprout crash description, and crushing the first paper bag disables the 3-minute timer mentioned in the missing paper bag crash description. However, it is possible to disable either timer while a different timer is counting down. This causes a crash. Note that letting Pikmin approach the player for the first time disables a separate 1-second timer, so this can also be involved in a crash.
| {{w|Assertion (software development)|Assertion}}
| <code>CurrTimer (5) : disableTimer(4) in "singleGameSection.cpp" on line 1361</code>
| [https://youtube.com/watch?v=cPqyk5PyL-E YouTube video]
|}


=== ''Pikmin 3'' ===
=== ''Pikmin 3'' ===
Line 61: Line 126:
{{game help|npcp2|Figure out if there's any crash handler in the ''New Play Control!'' version.}}
{{game help|npcp2|Figure out if there's any crash handler in the ''New Play Control!'' version.}}
{{game help|p2|The Interactive Multi Game Demo Disc Version 18 has a ''Pikmin 2'' demo with an intact code map. Figure out if the crash handler exists in this demo, and determine if the intact code map allows it to decode the addresses more consistently.}}
{{game help|p2|The Interactive Multi Game Demo Disc Version 18 has a ''Pikmin 2'' demo with an intact code map. Figure out if the crash handler exists in this demo, and determine if the intact code map allows it to decode the addresses more consistently.}}
In {{p2}} for the [[GameCube]], if the game crashes, the player might be able to input a development button combination in order to get a crash handler screen to pop up.{{cite youtube|rname=handler}} The code should be pressed one button at a time, and with ample time between each button press:
 
In {{p2}} for the [[GameCube]], if the game crashes, the player might be able to input a development button combination in order to get a crash handler screen to pop up.{{cite youtube|cPqyk5PyL-E|of the crash handler in action}} The code should be pressed one button at a time, and with ample time between each button press:
:{{button|gc|a}} {{button|gc|b}} {{button|gc|x}} {{button|gc|r}} {{button|gc|l}} {{button|gc|padl}} {{button|gc|padd}} {{button|gc|padu}} {{button|gc|padr}} {{button|gc|z}}
:{{button|gc|a}} {{button|gc|b}} {{button|gc|x}} {{button|gc|r}} {{button|gc|l}} {{button|gc|padl}} {{button|gc|padd}} {{button|gc|padu}} {{button|gc|padr}} {{button|gc|z}}


This was used by the developers to help figure out what went wrong when the game crashed during development. Because the core game itself is frozen, the handler writes the debugging data directly onto the framebuffer, and as a result, is a bit choppy and slow. When the crash handler is opened, it begins by scrolling down the entire report, line by line, and the user can only control it after it reaches the end. {{button|gc|padu}} and {{button|gc|padd}} scroll the report up and down, while {{button|gc|b}} goes to the start and {{button|gc|a}} goes to the bottom.
This was used by the developers to help figure out what went wrong when the game crashed during development. Because the core game itself is frozen, the handler writes the debugging data directly onto the framebuffer, and as a result, is a bit choppy and slow. When the crash handler is opened, it begins by scrolling down the entire report, line by line, and the user can only control it after it reaches the end. {{button|gc|padu}} and {{button|gc|padd}} scroll the report up and down, while {{button|gc|b}} goes to the start and {{button|gc|a}} goes to the bottom.


The first few lines contain information about what function crashed, and where in the code it is. Because the code map file in the game's data has been overwritten with garbage at some point during development, the handler will often be unable to decode the addresses and will simply show "no information". Everything else in the report consists of information about the type of error that occurred, and the state of some important locations of memory when that happened.
The first few lines contain the most important information about the crash. Some crashes cause a general exception to be raised within the code, and the exception is specified in the crash handler. Other times, the developers foresaw that certain logic could run incorrectly, and added some {{w|Assertion (software development)|assertions}} to better help them understand what went wrong, in the times where that did happen. In these cases, "user halt" is given as the crash reason, and some custom information written down by the developers is included at the top of the entire report.
 
The rest of the report is filled with miscellaneous memory locations and their state when the crash happened. Because the code map file in the game's data has been overwritten with garbage in the final release, the handler will be unable to decode some of the addresses in the report and will often simply show "no information".


== References ==
== References ==