Citra MMJ Ayn Thor Setup Guide – Best Settings for Odin & Thor Handhelds
Device Guides

Citra MMJ Ayn Thor Setup Guide – Best Settings for Odin & Thor Handhelds

Complete Citra MMJ setup guide for Ayn Thor, Odin, and Odin 2 handhelds. Best settings, optimal resolution, controller mapping, and performance tips for the Ayn gaming lineup.

C
by Citra MMJ

The Ayn Thor and Ayn Odin are dedicated Android gaming handhelds that have become popular choices for emulation enthusiasts. With their Snapdragon 845 / 8 Gen 1 chipsets and native controller hardware, they are excellent platforms for Citra MMJ. This guide covers the complete Citra MMJ Ayn Thor setup — from installation to optimal settings for 60 FPS gameplay.

Ayn Handheld Lineup Overview

DeviceChipsetRAMCitra MMJ Performance
Ayn OdinSnapdragon 8456/8 GBExcellent — 2×–3× resolution
Ayn Odin 2Snapdragon 8 Gen 216 GBOutstanding — 4× resolution, stable 60 FPS
Ayn ThorSnapdragon 8706/8 GBVery good — 2×–3× resolution
Ayn Odin LiteSnapdragon 8454 GBGood — 2× resolution

Step 1: Install Citra MMJ on Ayn Devices

  1. Open the browser on your Ayn device and navigate to the Citra MMJ GitHub releases page.
  2. Download the latest stable ARM64 APK.
  3. When prompted about “Install from unknown sources,” tap Allow — this is required for any APK installed outside the Play Store on the Ayn OS.
  4. Once installed, launch Citra MMJ and grant All Files Access permission when prompted.

Step 2: Best Citra MMJ Settings for Ayn Thor / Odin

Graphics Settings

SettingAyn Thor / OdinAyn Odin 2
Graphics APIVulkanVulkan
Internal Resolution3× (1920×1440)4× (2560×1920)
Async ShadersEnabledEnabled
Post ProcessingNoneNone
Texture FilterNone or xBRZ-FreescaleAnime4K / xBRZ

Performance Settings

SettingValue
CPU JITEnabled
New 3DS ModeEnabled
Speed Limit100%
Frame SkipDisabled
Audio BackendOpenSL ES
Audio LatencyMedium

Step 3: Controller Mapping for Ayn Devices

The Ayn Thor and Odin have built-in physical controllers that are automatically detected by Android as a standard gamepad. Citra MMJ will recognise them natively.

Default mapping (works out of the box):

  • Left stick → 3DS Circle Pad
  • Right stick → 3DS C-Stick (New 3DS only)
  • A/B/X/Y → 3DS A/B/X/Y (note: layouts may be swapped — remap if needed)
  • L/R triggers → 3DS L/R buttons
  • ZL/ZR → 3DS ZL/ZR (New 3DS)
  • Start/Select → 3DS Start/Select

To remap: In Citra MMJ, go to Settings → Controls → Map Gamepad. Press each physical button to assign it to the corresponding 3DS button.

The Ayn Odin 2 can achieve locked 60 FPS in most 3DS titles. The Thor handles 60 FPS comfortably in less demanding games.

To apply a 60 FPS cheat, long-press the game → Properties → Cheats → Add Cheat. See our full cheat codes guide for game-specific codes.

Step 5: Dual Screen Layout Optimisation

The Ayn devices have wide screens that work well with the dual-screen layout.

  1. In Citra MMJ, go to Settings → Layout.
  2. Set Screen Layout to Side by Side for the most natural 3DS feel on the Ayn’s wide display.
  3. Adjust the Screen Gap slider to add a small separator between the two screens.
  4. The physical controller buttons serve as the touchscreen alternative for most games.

Performance Expectations

Ayn Thor / Odin (Snapdragon 845–870):

  • Pokémon X/Y, ORAS: 60 FPS with cheat code, 2×–3× resolution
  • Mario Kart 7: 60 FPS stable, 3× resolution
  • Fire Emblem Fates: 40–60 FPS depending on map complexity
  • Monster Hunter Stories: 30–45 FPS (CPU-heavy title)

Ayn Odin 2 (Snapdragon 8 Gen 2):

  • Virtually all 3DS titles: 60 FPS at 4× resolution with Vulkan
  • Most demanding titles (Smash Bros. 3DS): 45–60 FPS

Common Issues on Ayn Devices

Screen stays black after launch: Switch from Vulkan to OpenGL ES in graphics settings, then switch back. This forces a graphics context refresh.

Buttons not responding correctly: Go to Settings → Controls and manually remap the controller. The Ayn devices occasionally use non-standard Android gamepad key codes.

Audio crackling: Lower audio latency to High (counter-intuitively, this increases the buffer size and reduces underruns). Alternatively, switch to SDL2 audio backend.

Game stutters on first load: This is shader compilation — enable Async Shader Compilation and let the game run for a few minutes. Subsequent runs will be stutter-free once shaders are cached.

For full settings documentation, visit our Best Settings guide.