Difference between revisions of "PPCHalt"
(6 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | '''PPCHalt''' is a function in the [[Dolphin SDK]] and [[Revolution SDK]] standard library (specifically in the base.a/baseD.a file) which is used to halt the main CPU of a GameCube or Wii when a fatal error occurs. Notably, when this function is called without first halting audio playback, the console will freeze but continue to output the last audio frame in its DSP over the audio connection, resulting in the playback of an often loud and high-pitched tone. | + | '''PPCHalt''' is a function in the [[Dolphin SDK]] and [[Revolution SDK]] standard library (specifically in the base.a/baseD.a file) which is used to halt the main CPU of a GameCube or Wii when a fatal error occurs. Notably, when this function is called without first halting audio playback, the console will freeze but continue to output the last audio frame in its DSP over the audio connection, resulting in the playback of an often loud and high-pitched tone. This tone is often referred to as the '''Sound of Death''', and has become infamous online and also became a meme. |
− | + | The function is implemented in PowerPC Assembly as an infinite unproductive loop which repeatedly branches to the same instruction. | |
The following is the source code of the PPCHalt function from the Revolution SDK (circa 2.0)'s version of the base library.<ref>[[DIAG4RVL.zip]]/trunk/SDK/build/libraries/base/src/PPCArch.c</ref> | The following is the source code of the PPCHalt function from the Revolution SDK (circa 2.0)'s version of the base library.<ref>[[DIAG4RVL.zip]]/trunk/SDK/build/libraries/base/src/PPCArch.c</ref> | ||
Line 39: | Line 39: | ||
|container=frame | |container=frame | ||
}} | }} | ||
+ | |||
+ | [[Category:Errors]] | ||
+ | {{Template:ErrorNavbox}} |
Latest revision as of 05:34, 7 May 2023
PPCHalt is a function in the Dolphin SDK and Revolution SDK standard library (specifically in the base.a/baseD.a file) which is used to halt the main CPU of a GameCube or Wii when a fatal error occurs. Notably, when this function is called without first halting audio playback, the console will freeze but continue to output the last audio frame in its DSP over the audio connection, resulting in the playback of an often loud and high-pitched tone. This tone is often referred to as the Sound of Death, and has become infamous online and also became a meme.
The function is implemented in PowerPC Assembly as an infinite unproductive loop which repeatedly branches to the same instruction.
The following is the source code of the PPCHalt function from the Revolution SDK (circa 2.0)'s version of the base library.[1]
/*---------------------------------------------------------------------------* Name: PPCHalt Description: Halt CPU by spinning infinitely. Arguments: None Returns: Does not return. *---------------------------------------------------------------------------*/ __declspec ( weak ) asm void PPCHalt (void) { nofralloc sync _spin: nop // AMC debugger has problems with empty while(1) li r3, 0 nop b _spin // NOT REACHED HERE }
Gallery
- ↑ DIAG4RVL.zip/trunk/SDK/build/libraries/base/src/PPCArch.c