Citra Crashes when launching any game. Maybe update related

Issue:
In the last month i open citra and downloaded an update a couple of times, just to keep citra up to date. A couple of days back i tried running a game and it just crashed. No shader loading nothing, just a crash. I searched the issue and tried nearly every fix:

  1. Disabling disk shader cache
  2. Disabling Accurate Multiplication
  3. Adding a user folder (Portable Mode), which did work, but as soon as i copied everything from the old citra folder, same crash.

After checking differerences with winmerge i found no difference in the newly created qt-config.ini and the one from the crash. (With an exception of the nand-directory path. Same goes for sdmc). Also it did run the game in portable mode, but after copying everything else to restore games and save files, it crashed yet again. And, yes i did skip the qt-config.ini and log, because of the nand directory path. Every setting is identical, yet it still crashes with those specific files. I started wondering if it had to do with the shader cache. Renaming the Shaders folder to shaders.bak did nothing. Same crash. I’m running out of idea’s… I saw somebody posting a screen shot of the shaders folder so here it goes:


screenshot2

System Information

  • Operating System: Windows 10
  • CPU: AMD Ryzen 5 3600 6-Core Processor
  • GPU: ATI Radeon 550 Series
  • Citra Version (found in title bar): latest to this day: 1721
  • Game: Any
  • Screenshot of Issue (include the full Citra window including titlebar): None, because it just crashes…

Diagnostic Log

citra_log.txt (9.4 KB)

I did not find anything wrong in your log file. Please wait for a moderator to assist.

citra_log.txt (6.3 KB)

This one is probably the one when it crashed… The previous one i did not run the game

System Information for Support

Client Version                                Nightly 1721 HEAD-89410c1
Operating System                              Windows 10 (10.0)
CPU                                           AMD Ryzen 5 3600 6-Core Processor               | AVX2 | FMA
Graphics API                                  OpenGL ?
Graphics Renderer                             ?
CPU JIT                                       [x]
Hardware Renderer                             [x]
Hardware Shader                               [x]
Hardware Shader, Accurate Multiplication      [x]
Shader JIT                                    [x]
System Region                                 -1
Shader Disk Cache                             [x]

I did not find anything wrong in your log file. Please wait for a moderator to assist.

I checked the log again and saw an error with aes keys. I renamed the aes_eys.txt to aes_keys.txt.old and tried another one. Same crash different error.

[   0.380048] HW.AES <Error> core/hw/aes/key.cpp:LoadPresetKeys:469: Invalid key name generator

I don’t remember where i got the old one from but it seemed shorter. The above error was in the new log.
After that iread about a way to extract them from a real 3ds. Atleast i got the boot9.bin and movable.sed files and tried it without the aes_keys.txt. I also installed the cia as instructed. Same crash another error.


[   0.370007] Service.FS <Error> core/file_sys/ncch_container.cpp:Load:256: Secure2 KeyX missing
[   0.370012] Service.FS <Error> core/file_sys/ncch_container.cpp:Load:347: Failed to decrypt
[   0.370019] Service.FS <Error> core/file_sys/ncch_container.cpp:Load:256: Secure2 KeyX missing
[   0.370022] Service.FS <Error> core/file_sys/ncch_container.cpp:Load:347: Failed to decrypt
[   0.370106] Service.FS <Error> core/file_sys/ncch_container.cpp:Load:256: Secure2 KeyX missing
[   0.370110] Service.FS <Error> core/file_sys/ncch_container.cpp:Load:347: Failed to decrypt
[   0.372574] Service.FS <Error> core/file_sys/ncch_container.cpp:Load:256: Secure2 KeyX missing
[   0.372577] Service.FS <Error> core/file_sys/ncch_container.cpp:Load:347: Failed to decrypt
[   0.372580] Service.FS <Error> core/file_sys/ncch_container.cpp:Load:256: Secure2 KeyX missing
[   0.372583] Service.FS <Error> core/file_sys/ncch_container.cpp:Load:347: Failed to decrypt
[   0.372652] Service.FS <Error> core/file_sys/ncch_container.cpp:Load:256: Secure2 KeyX missing
[   0.372655] Service.FS <Error> core/file_sys/ncch_container.cpp:Load:347: Failed to decrypt

I could try a different aes_keys.txt, but i don’t know how to get it out of my real 3ds. And I don’t understand if you both need the aes_keys.txt , movable.sed and boot9.bin , or need only the boot9.bin and movable.sed .
Th problem is it worked before, yet now it seems to crash. I don’t suppose there’s any way of knowing what version I was on before, right? Like a list of performed updates? If that would be the case, i could just revert to the old version, and i think the problem should be solved. I’ll try checking different versions, starting from a month old.

I’ve downgraded to all versions until 6 months ago and nothing. After that I started wondering why after creating the user folder, everything seemed to work, up until copying the old citra files into it’s location. I renamed all folders one by one in the user directory to (sdmc/nand/shaders/config).bak and found out it had to do wityh the nand folder. Luckily there’s nothing in that folder that i require to have (with an exception of my mii’s), and surely enough after copying everything except the nand folder to the user folder, everything seemed to work. I’ll check if the mii’s can safely be restored, but my issue is solved. But if you’re willing to check why the old nand folder didn’t work, that would be greatly appreaciated. Then maybe this issue can be fixed if it happens to other users as well. I’ll try to recover the mii’s just in case that’s the issue, but if it’s not i can upload my nand folder for further testing. Ask me if you want me to, but if it contains either real 3ds data or you think it might be against any rules, feel free to says o as well. If that’s the cause i won’t.

It might just be that a part of your nand files got corrupted at some point. Might sound really basic, but that is usually what it boils down to. Whilst we mimick the 3DS as closely as possible, Windows storage is a lot more failure prone and Citra doesn’t have a good way to recover from that because the 3DS never needs to. Seeing as the nand failed, it’s likely that one of the config files there kicked the bucket. Usually it’d give you a “Fatal Error” warning when that happens and gives off a message in the log file about it. But it appears that didn’t happen in this case.

Thanks for letting me know. Didn’t know the nand was so different from regular storage. How do i mark it as solved? Just check the solution box or do i need to do more?