Citra MMJ Crashing? Fix Crashes on Launch and Game Start
Troubleshooting

Citra MMJ Crashing? Fix Crashes on Launch and Game Start

Citra MMJ crashing when you launch it or start a game? Follow this ordered checklist to fix the most common crash causes on Android, step by step.

C
by Citra MMJ

Citra MMJ crashing the moment you open it — or dying the instant you start a game — is one of the most frustrating problems on Android. The good news: the vast majority of crashes trace back to a short list of causes, and they can be worked through in order.

This guide gives you an ordered checklist. Start at step 1 and work down. Don’t skip around — each step eliminates one common crash source, and most people find their fix in the first three or four.

⚠️ Before Proceeding: Make sure you’re running a recent MMJ build (the weihuoya/citra MMJ builds from ~2025, such as the 20250221 storage-access or antutu variants). Very old builds have known crash bugs on modern Android versions that no settings change can fix. Check your version on our download page.

Step 1: Toggle the Graphics Backend (Vulkan ↔ OpenGL ES)

The single most common cause of crashes — both at app launch and when starting a game — is the graphics backend. Vulkan is faster on most Snapdragon devices, but buggy drivers on certain chips (older Snapdragon, some Mali/Dimensity, and early Tensor GPUs) can crash the emulator outright instead of rendering.

  1. Open Citra MMJ and go to Settings → Graphics.
  2. Find Graphics API.
  3. If it’s set to Vulkan, switch it to OpenGL ES (or vice versa).
  4. Force-stop the app completely, reopen it, and try again.
Device GPUTry firstIf it crashes
Snapdragon (Adreno)VulkanOpenGL ES
MediaTek / Exynos / Tensor (Mali)OpenGL ESVulkan
Older Snapdragon (pre-835)OpenGL ES—

If the app crashes before you can even open Settings, you can reset settings externally — see our full reset guide, which explains how to clear the config without losing your saves.

💡 Tip: Audio playing with a frozen or black display usually means a backend issue rather than a full crash. Our black screen fix guide covers that case in detail.

Step 2: Clear the Shader Cache

Corrupted or stale shader cache data is a classic cause of crashes when starting a game. This is especially common after updating to a new build or switching between Vulkan and OpenGL, because shader data compiled for one backend won’t work on the other.

  1. Go to Settings → Graphics.
  2. Disable Use Disk Shader Cache.
  3. Find Citra MMJ’s shader cache folder in your storage (under the citra-emu directory) and delete the shader files, or clear them via Storage → Clear Shader Cache if your build has that option.
  4. Re-enable the disk shader cache and launch your game again.

The game may take slightly longer to load the first time as shaders recompile — that’s normal. For a deeper explanation of what the shader cache actually does, see our shader cache explainer.

Step 3: Check Storage Permissions

Citra MMJ needs storage access to read your game dumps and write saves, shaders, and config. On Android 11+, scoped storage rules mean the app can lose access to folders it previously used — and instead of showing a helpful error, it sometimes just crashes.

  1. Open your Android Settings → Apps → Citra MMJ → Permissions.
  2. Make sure Files and media (or Storage) is set to Allow / Allow all the time.
  3. If your dump files are on an SD card, note that newer MMJ builds (like the 20250221 storage-access variant) specifically addressed scoped-storage issues — older builds may crash reading from external storage.

If the crash happens right when you browse for a ROM, permissions are the prime suspect.

Step 4: Verify Your Game Dump Isn’t Corrupt

A corrupt, incomplete, or encrypted dump will crash Citra MMJ during loading. Signs of a bad dump:

  • The file is far smaller than expected (a full 3DS game is typically 500MB–4GB; a “Pokémon Sun” at 20MB is not a real dump).
  • The download was interrupted or the archive extraction failed.
  • The dump is encrypted and your AES keys aren’t installed.

The fix: re-dump the game from your own cartridge using GodMode9 or a similar tool on a real 3DS, and verify the file size and checksum match what you’d expect. Always dump your own cartridges — never download ROMs.

⚠️ Before Proceeding: If a game crashes at the exact same point every time (e.g., always at the title screen), the dump is suspect. If crashes are random, the problem is more likely settings, thermals, or drivers.

Step 5: Disable Cheats and Custom Textures

Cheat codes and HD texture packs modify the game’s memory at runtime. A cheat written for a different game region or version, or a texture pack with malformed files, can crash the emulator instantly on boot.

  1. Go to Settings → Graphics and turn off Use Custom Textures.
  2. Go to Settings → System (or the Cheats menu) and disable all cheats.
  3. Launch the game. If it now works, re-enable cheats one at a time to find the culprit.

This is worth checking before you blame the emulator itself — our cheats guide explains how to use them safely.

Step 6: Rule Out Android Version and Device Issues

Some crashes are device-specific rather than emulator-specific:

  • Android 14+ restrictions: Newer Android versions are stricter about background processes and JIT compilation. If crashes started after an OS update, check our Android 14 best settings and battery optimization guide — aggressive power saving killing the emulator mid-game looks exactly like a crash.
  • Thermal throttling: A phone that overheats can force-close heavy apps. If crashes happen after 15–20 minutes of play rather than immediately, heat is the likely cause — see our thermal throttling fix.
  • Low RAM: Devices with 3GB of RAM or less can run out of memory on demanding titles. Lower the internal resolution and close background apps — our low-end Android guide covers this.

Step 7: Clean Reinstall (Last Resort)

If nothing above helped, do a clean reinstall — but back up your saves first. See our save data backup guide before you touch anything.

  1. Back up your citra-emu folder (saves, system files, shader cache).
  2. Uninstall Citra MMJ.
  3. Reinstall from a trusted source — the official MMJ releases on the weihuoya/citra GitHub repository.
  4. Restore your citra-emu folder and test with default settings.

Crash Diagnosis Quick Table

When it crashesMost likely causeStart with
App won’t open at allCorrupt config / bad buildStep 1 (reset via full reset guide), then Step 7
Crashes when starting any gameGraphics backend / shader cacheStep 1, Step 2
Crashes on one specific gameBad dump / cheats / texturesStep 4, Step 5
Crashes after playing a whileHeat / RAM / battery optimizationStep 6
Crashes browsing for ROMsStorage permissionsStep 3

💡 Tip: Getting an actual numbered error instead of a silent crash? Our Error 11 fix and black screen guide cover those separately.

Work through this list in order and you’ll resolve the overwhelming majority of Citra MMJ crashes. If you’ve completed every step and the app still crashes, note your device model, Android version, MMJ build number, and which step the crash happens at — that’s the information any community member will need to help you further. For tuning performance once things are stable, head to our best settings guide.