Approver
395
edits
m (lowercase ctrcheck) |
StarlitSkies (talk | contribs) (grammar fixes, add pm During Use error, add broken NVRAM to mset During Use error, fully add registers to →Reading a Luma3DS exception screen: , internal style fixes) |
||
Line 1: | Line 1: | ||
{{shortcut|3DS:EXCEPTION}} | {{shortcut|3DS:EXCEPTION}} | ||
This page lists possible causes and fixes of Luma3DS exception screens. They are not applicable to every situation, but cover most common known issues. | This page lists possible causes and fixes of Luma3DS exception screens. They are not applicable to every situation, but cover most common known issues. | ||
==Reading a Luma3DS exception screen== | |||
== Reading a Luma3DS exception screen == | |||
A Luma3DS exception has four (or five, in a few cases) different parts to it that help in finding its cause, as follows: | A Luma3DS exception has four (or five, in a few cases) different parts to it that help in finding its cause, as follows: | ||
[[File:Luma3DS_exception.png|center]] | [[File:Luma3DS_exception.png|center]] | ||
* '''Processor:''' What part of the system is causing the exception. The two processors are: | * '''Processor:''' What part of the system is causing the exception. The two processors are: | ||
**'''Arm9:''' The 'security processor' of the system. These exceptions are usually raised because of errors in NAND data or hardware faults in either the 3DS or its SD card. | ** '''Arm9:''' The 'security processor' of the system. These exceptions are usually raised because of errors in NAND data or hardware faults in either the 3DS or its SD card. | ||
**'''Arm11:''' The 'userland' of the system. These exceptions have numerous causes but are more often related to broken software or user data. | ** '''Arm11:''' The 'userland' of the system. These exceptions have numerous causes but are more often related to broken software or user data. | ||
* '''Exception type:''' The type of fault that caused the exception. These categories correspond to the ARM exceptions for the [https://developer.arm.com/documentation/ddi0201/d ARM9] and [https://developer.arm.com/documentation/ddi0360/f ARM11] CPUs, as follows: | * '''Exception type:''' The type of fault that caused the exception. These categories correspond to the ARM exceptions for the [https://developer.arm.com/documentation/ddi0201/d ARM9] and [https://developer.arm.com/documentation/ddi0360/f ARM11] CPUs, as follows: | ||
**'''data abort''': Caused by a read or write to an invalid part of memory. Usually related to game mods/cheats/plugins, broken HOME Menu data, and/or broken CFW applications. | ** '''data abort''': Caused by a read or write to an invalid part of memory. Usually related to game mods/cheats/plugins, broken HOME Menu data, and/or broken CFW applications. | ||
**'''prefetch abort''': Caused by an attempt to execute | ** '''prefetch abort''': Caused by an attempt to execute a CPU instruction that was marked as invalid. Often related to conflicts between CFW and other software. | ||
**'''prefetch abort (svcBreak)''': Caused by either Process9 or homebrew software manually | ** '''prefetch abort (svcBreak)''': Caused by either Process9 or homebrew software manually halting because it tripped a pre-defined error condition. Often related to damage to NAND data, even when raised by Arm11. Can also happen when launching an out-of-region game that isn't [[3DS:SGL|locale emulated.]] | ||
**'''prefetch abort (kernel panic)''': Caused by Kernel9 detecting an unrecoverable | ** '''prefetch abort (kernel panic)''': Caused by Kernel9 detecting an unrecoverable error and forcibly halting to avoid causing damage. Can be related to any of several things, but hardware issues are the most likely. | ||
**'''undefined instruction''': Caused by an attempt to execute a CPU instruction that was unimplemented, disallowed, or unusable. Often related to software | ** '''undefined instruction''': Caused by an attempt to execute a CPU instruction that was unimplemented, disallowed, or unusable. Often related to software missing its required files (if not on boot) or an outdated <code>boot.firm</code> (if on boot). | ||
*'''Fault status:''' The specific type of ARM exception that was raised. Helpful for developers, but not so much for the end user. | * '''Fault status:''' The specific type of ARM exception that was raised. Helpful for developers, but not so much for the end user. | ||
*'''Current process:''' Where the error is coming from in the system. Often the most helpful part of the exception. Some examples of processes are as follows: | * '''Current process:''' Where the error is coming from in the system. Often the most helpful part of the exception. Some examples of processes are as follows: | ||
**'''fs''': The filesystem, i.e. either the SD card or the NAND. | ** '''fs''': The filesystem, i.e. either the SD card or the NAND. | ||
**'''menu''': Data that is opened either as a part of the HOME Menu or at the same time as it. | ** '''menu''': Data that is opened either as a part of the HOME Menu or at the same time as it. | ||
**'''loader''': The service that opens apps, meaning the app most recently opened has an issue. | ** '''loader''': The service that opens apps, meaning the app most recently opened has an issue. | ||
**'''nwm''': Networking services, almost always Wi-Fi. | ** '''nwm''': Networking services, almost always Wi-Fi. | ||
**'''ns''': The <u>N</u>intendo User Interface <u>S</u>hell, which handles all apps/processes/services in 3DS mode. | ** '''ns''': The <u>N</u>intendo User Interface <u>S</u>hell, which handles all apps/processes/services in 3DS mode. | ||
*'''R0''': Usually just internal data that's not worth reading. There are | * '''Registers (R0-R12/SP/LR/PC/CPSR/FPEXC)''': Usually just internal data that's not worth reading, though R0 is the most likely of them to contain useful data. There are certain notable exceptions that aren't mentioned in the list of known errors, however: | ||
** | ** If the value <code>000400??</code> (the ? marks can be any number) appears in any of the registers, it likely refers to the first half of a title ID - check the value of the register after it to ensure this. If it is a title ID, it can be used to narrow down the original cause of an error. | ||
**' | ** If the value of any register starts with the letter C, D, E, or F (even if it isn't in R0) and doesn't look completely random, it may be an error code - this is more likely if the value starts with C or D. You may want to check it manually, as if it is an error code, it can likely help in troubleshooting . | ||
== Known Errors == | == Known Errors == | ||
In the following list, the file prefixes on file paths refer to the starting location. <code>sd:/</code> refers to the SD card, and numbers in the format of <code>[X:]</code> refer to GodMode9's drive numbers. | In the following list, the file prefixes on file paths refer to the starting location. <code>sd:/</code> refers to the SD card, and numbers in the format of <code>[X:]</code> refer to GodMode9's drive numbers. | ||
{{info|If the below fixes do not solve your issue or you are unsure of what to do, join the [https://discord.gg/C29hYvh Nintendo Homebrew Discord] for further assistance.}} | {{info|If the below fixes do not solve your issue or you are unsure of what to do, join the [https://discord.gg/C29hYvh Nintendo Homebrew Discord] for further assistance.}} | ||
Line 30: | Line 33: | ||
=== <big>Arm9</big> === | === <big>Arm9</big> === | ||
Arm9 errors are sorted by their '''exception type'''. | Arm9 errors are sorted by their '''exception type'''. | ||
Line 66: | Line 70: | ||
=== <big>Arm11</big> === | === <big>Arm11</big> === | ||
All Arm11 errors are sorted by their '''current process'''. | All Arm11 errors are sorted by their '''current process'''. | ||
Line 163: | Line 168: | ||
<h5>fs</h5> | <h5>fs</h5> | ||
* Could be an SD card problem, minor NAND problem, hardware issue, or anything in between. | * Could be an SD card problem, minor NAND problem, hardware issue, or anything in between. | ||
** [[wikipedia:Fault isolation|fault isolation]] will likely be required to find the true cause of this error. Start by doing [[3DS:ctrcheck|ctrcheck]] and trying to | ** [[wikipedia:Fault isolation|fault isolation]] will likely be required to find the true cause of this error. Start by doing [[3DS:ctrcheck|ctrcheck]] and trying to recreate the error without the SD card inserted.<br>If the error stops after the SD card is removed, [[Formatting an SD card|reformat the SD card]], and if that doesn't help, [[Checking SD card integrity|test it for hardware damage]]. | ||
<h5>Kujira/Joker/niji_loc</h5> | <h5>Kujira/Joker/niji_loc</h5> | ||
Line 173: | Line 178: | ||
* <h6>undefined instruction</h6> | * <h6>undefined instruction</h6> | ||
** The app most recently opened has an issue. R0 is | ** The app most recently opened has an issue. If the value of R0 starts with C or D, it is an error code, and has a chance of being an error code if the value starts with E or F. Here are some common values for R0: | ||
*** <code>D9004587</code>: When trying to open a game: The game is corrupted, or it's seed is not imported. | *** <code>D9004587</code>: When trying to open a game: The game is corrupted, or it's seed is not imported. | ||
**** See: [[3DS:Fixing corrupted games]] | **** See: [[3DS:Fixing corrupted games]] | ||
Line 179: | Line 184: | ||
**** To fix: Download the latest Homebrew Launcher from [https://github.com/devkitPro/3ds-hbmenu/releases/latest here] | **** To fix: Download the latest Homebrew Launcher from [https://github.com/devkitPro/3ds-hbmenu/releases/latest here] | ||
*** <code>D96077FA</code>/<code>FFFFFFFF</code>: The <code>.3dsx</code> that Luma3DS tried to load is corrupted. | *** <code>D96077FA</code>/<code>FFFFFFFF</code>: The <code>.3dsx</code> that Luma3DS tried to load is corrupted. | ||
**** To fix, redownload the app you are trying to launch. If this happens when you try open the Homebrew Launcher itself, see the error above. | **** To fix, redownload the app you are trying to launch. If this happens when you try to open the Homebrew Launcher itself, see the error above. | ||
*** Most of the other possible error codes | *** Most of the other possible error codes that can appear here are listed on [[3DS:Error_screens/Luma3DS_ErrDisp|the ErrDisp page]]. | ||
* <h6>prefetch abort (svcBreak)</h6> | * <h6>prefetch abort (svcBreak)</h6> | ||
**The LayeredFS or sysmodule patch Luma3DS tried to load is invalid or corrupt. | **The LayeredFS or sysmodule patch Luma3DS tried to load is invalid or corrupt. | ||
***To fix: | ***To fix: Redownload any recently installed patches (eg. Nimbus (Pretendo), Wumiibo, or anything else that goes in <code>/luma/titles</code> or <code>/luma/sysmodules</code>.) Alternatively, you may disable <code>loading external FIRMs and modules</code> as well as <code>Enable game patching</code> in the [[3DS:Luma3DS/Configuration|Luma3DS configuration menu]]. | ||
<h5>mset</h5> | <h5>mset</h5> | ||
* System Settings is broken in some way - this may indicate that the console has a hardware issue. | * '''If not caused in Nintendo DS Profile:''' System Settings is broken in some way - this may indicate that the console has a hardware issue. | ||
** To fix, perform a [[3DS:CTRTransfer|CTRTransfer]], or a [[3DS:CTRTransfer/Manual|Manual CTRTransfer]] if that does not work. | ** To fix, perform a [[3DS:CTRTransfer|CTRTransfer]], or a [[3DS:CTRTransfer/Manual|Manual CTRTransfer]] if that does not work. | ||
*** If neither of these work, the console has a serious issue. Join the [https://discord.gg/nintendohomebrew Nintendo Homebrew Discord] and ask, in English, for help. | *** If neither of these work, the console has a serious issue. Join the [https://discord.gg/nintendohomebrew Nintendo Homebrew Discord] and ask, in English, for help. | ||
* '''If caused in Nintendo DS Profile:''' Your NVRAM is either corrupted or damaged in hardware. Run [[3DS:ctrcheck|ctrcheck]] on <code>Full</code> - if it does not return <code>Critical: NVRAM is inaccessible</code>, then follow | |||
<h5>nwm</h5> | <h5>nwm</h5> | ||
Line 196: | Line 202: | ||
<h5>pxi</h5> | <h5>pxi</h5> | ||
* Could be anything from a faulty cartridge to damaged internal components, but will almost always be some type of hardware issue. | * Could be anything from a faulty cartridge to damaged internal components, but will almost always be some type of hardware issue. | ||
<h5>pm</h5> | |||
* The software you have launched may be missing required files. If the value in R0 is <code>E0E01BF5</code>, this is extremely likely to be the cause. | |||
<h5>qtm/cam</h5> | <h5>qtm/cam</h5> |